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

最新文章

  1. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
  2. 利用FileStream实现多媒体文件复制
  3. android listview 加载图片错乱(错位)
  4. asmdisk 丢失问题一次记录
  5. mongnodb 启动脚本
  6. Delphi 在使用exports中的方法 带参数的用法
  7. Java Volatile transient 关键字
  8. 使用SLT 工具从SAP导入数据到SAP HANA的监控
  9. jdk8 JAVA_OPTS
  10. 如何获得select被选中option的value和text
  11. 讨论下茴香逗的茴字有几种写法,javascript字符串数组查找“indexOf"的替代方式。
  12. Alpha冲刺随笔汇总
  13. LeetCode--434--字符串中的单词数
  14. vue 中安装使用sass 报错遇到的问题整理
  15. [bzoj 1260][CQOI 2007]涂色paint
  16. django-插件django REST framework,返回序列化的数据
  17. 在网页浏览器中原生显示PDF文件
  18. java-mybaits-00801-逆向工程
  19. python爬虫我是斗图之王
  20. 接口API中的敏感数据基于AES进行安全加密后返回

热门文章

  1. git commit -m 和 git commit -am 区别
  2. B. Yet Another Crosses Problem
  3. JS - 对话框
  4. Power BI角色控制
  5. spring boot 实战教程
  6. 重新修改AD中PCB的形状快捷键
  7. ROS常见问题(一) 安装ROS时sudo rosdep init指令报错 最全解决方法
  8. BGP联邦配置
  9. Win7 node多版本管理gnvm采坑记录
  10. Swift—UITextField的基本用法