当前位置: 首页 > 工具软件 > SVNKit > 使用案例 >

svnkit-常用api

微生昌勋
2023-12-01

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

 

 

 

 

转载于:https://www.cnblogs.com/yaoyuan2/p/11188759.html

 类似资料: