SVNKit是一个纯java的subversion客户端库,使用SVNKit无需安装任何subversion客户端,支持各种操作系统。
首先新建java项目,把SVNKit的jar包放到项目的类路径下面。
Jar包有trilead.jar,svnkit-javahl.jar,svnkit-cli.jar,svnkit.jar和jna.jar。
程序框架如下所示:
/*第一步:
*导入可能用到的类
*/
import java.io.*;
importorg.tmatesoft.svn.core.*;
importorg.tmatesoft.svn.core.wc.*;
importorg.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
import org.tmatesoft.svn.core.internal.io.fs.FSRepositoryFactory;
importorg.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
importorg.tmatesoft.svn.core.internal.util.SVNPathUtil;
public class Demo {
/*第二步:
*声明客户端管理类SVNClientManager。
*/
private static SVNClientManager ourClientManager;
public static void main(String[] args) throws SVNException {
/*第三步:
* 对版本库进行初始化操作 (在用版本库进行其他操作前必须进行初始化)
* 对于通过使用 http:// 和 https:// 访问,执行DAVRepositoryFactory.setup();
* 对于通过使用svn:// 和 svn+xxx://访问,执行SVNRepositoryFactoryImpl.setup();
* 对于通过使用file:///访问,执行FSRepositoryFactory.setup();
* 本程序框架用svn://来访问
*/
SVNRepositoryFactoryImpl.setup();
/*第四步:
* 要访问版本库的相关变量设置
*/
//版本库的URL地址
SVNURL repositoryURL = null;
try {
repositoryURL =SVNURL.parseURIEncoded("svn://localhost/testRep");
} catch (SVNException e) {
//
}
//版本库的用户名
String name = "userName";
//版本库的用户名密码
String password = "userPassword";
//工作副本目录
String myWorkingCopyPath = "D:/MyWorkingCopy";
//驱动选项
ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
/*第五步:
* 创建SVNClientManager的实例。提供认证信息(用户名,密码)
* 和驱动选项。
*/
ourClientManager =SVNClientManager.newInstance((DefaultSVNOptions)options, name, password);
/*第六步:
* 通过SVNClientManager的实例获取要进行操作的client实例(如 * SVNUpdateClient)
* 通过client实例来执行相关的操作。
* 此框架以check out操作来进行说明,其他操作类似。
*/
/*工作副本目录创建*/
File wcDir = new File(myWorkingCopyPath);
if (wcDir.exists()) {
error("the destination directory '"
+ wcDir.getAbsolutePath() +"' already exists!", null);
}
wcDir.mkdirs();
try {
/*
* 递归的把工作副本从repositoryURL check out 到 wcDir目录。
* SVNRevision.HEAD 意味着把最新的版本checked out出来。
*/
SVNUpdateClientupdateClient = ourClientManager.getUpdateClient();
updateClient.setIgnoreExternals(false);
updateClient.doCheckout(repositoryURL,wcDir,SVNRevision.HEAD,SVNRevision.HEAD, true);
} catch (SVNException svne) {
//
}
}
SVNKit官网下载地址:http://www.svnkit.com/
SVNKit API介绍及示例代码 :http://www.svnkit.com/javadoc/index.html
实例(实例+API+jar包)下载地址:http://download.csdn.net/detail/u011631266/6425181