• 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();

  • 相关阅读:
    210
    209
    208
    207
    定时任务crontab
    Python的zip与*zip函数的应用
    Python的reduce函数与map函数
    解析:cpu与io密集在何场景适合使用多进程,多线程,协程
    Python上下文(转载)
    C10K与C10M的问题
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11188759.html
Copyright © 2020-2023  润新知