• svnkit-常用api


    0、功能列表

    svnkit功能列表
    1、递归获取指定目录下目录和文件,以树形展示【svn Update】
    2、获取指定文件和属性(版本号、作者、日期、文件类型)
    3、获取指定文件或目录的历史记录(版本号、作者、日期、log message)【show log...】
    4、提交指定目录(递归)或文件【svn commit...】
    5、导出svn server指定目录或文件到本地指定目录【Export...】
    6、复制已经存在的Repository
    7、检查文件或目录是否存在&确定路径是文件还是目录
    8、创建新目录
    9、将本地svn切换到另外svn 地址【Relocate...】
    10、锁定文件【get Lock/release Lock】、删除文件【delete】、复制/移动文件

    1、为了支持不同协议,需要安装相应类库

    //为了使用 http:// and https://
    DAVRepositoryFactory.setup();
    //为了使用 svn:// and svn+xxx://
    SVNRepositoryFactoryImpl.setup();
    //为了使用 file:///
    FSRepositoryFactory.setup();

     

    2、创建SVNRepository来管理repository.

    /*
    * 创建SVNRepository来管理repository.
    * SVNURL 是url的包装对象
    */
    repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url));

    3、登录

    //登录
    ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password.toCharArray());
    repository.setAuthenticationManager(authManager);

    4、验证entry是否存在/文件还是目录

    /*
     * SVNNodeKind.NONE :无此目录或文件
     * SVNNodeKind.FILE :该地址是个文件
     * SVNNodeKind.DIR  :该地址是个目录
     */
    SVNNodeKind nodeKind = repository.checkPath("", -1);

    5、获取该仓库的根路径

    //输出:http://1.2.3.4/svn/sloth
    repository.getRepositoryRoot(true);

    6、获取指定目录下的所有文件或目录

    Collection entries = repository.getDir(path, -1, null,(Collection) null);
    Iterator iterator = entries.iterator();
    while (iterator.hasNext()) {
        SVNDirEntry entry = (SVNDirEntry) iterator.next();
        System.out.println("/" + (path.equals("") ? "" : path + "/")
                        + entry.getName() + " (author: '" + entry.getAuthor()
                        + "'; revision: " + entry.getRevision() + "; date: " + entry.getDate() + ")");
    }

    7、获取文件内容与文件属性

    SVNProperties fileProperties = new SVNProperties();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    /*
     * 获取文件内容和属性。-1:最后版本。
     */
    repository.getFile(filePath, -1, fileProperties, baos);
    String mimeType = fileProperties.getStringValue(SVNProperty.MIME_TYPE);
    boolean isTextType = SVNProperty.isTextMimeType(mimeType);
    
    Iterator iterator = fileProperties.nameSet().iterator();
    while (iterator.hasNext()) {
        String propertyName = (String) iterator.next();
        String propertyValue = fileProperties.getStringValue(propertyName);
    }

    8、获取repository最后版本

    latestRevision = repository.getLatestRevision();

  • 相关阅读:
    OpenGL模板缓冲区与模板测试
    u3d调用c++ dll的DllNotFoundExceion 问题
    u3d调用自己的dll
    使用 idea 的Bookmarks(书签)功能
    maven 相关问题
    项目
    使用 vi/vim 时,粘贴进新创建文件或空文件的首行内容丢失的解决方法
    Thread.sleep还是TimeUnit.SECONDS.sleep
    搭建 Guacamole 并解决各种坑和创建不了虚拟驱动器导致无法实现文件传输的方法
    properJavaRDP 跑通本地远程桌面
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11188759.html
Copyright © 2020-2023  润新知