一、简介

1、简介

SVNKit是一个纯Java版本控制(SVN)工具库(library)。

2、下载

在官网下载Standalone版本并解压,将解压后的svnkit-1.10.1\lib下的jar添加到Build Path中。

二、样例

import java.io.File;

import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
import org.tmatesoft.svn.core.wc.SVNWCUtil;

public class SvnExportExample {

	public static void main(String[] args) {
		String name = "albert";
		char[] password = { 'w', 'z', 'k' };
		String url = "https://localhost:8443/svn/myrepository/hello-world";
		String dest = "G:/demo/hello-world";
		
		SVNRepository repository = null;
		try {
			//创建基于特定协议的SVNRepository驱动程序
			repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url));
			//创建身份验证管理器
			ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
			//设置一个提供用户凭据的身份验证管理器
			repository.setAuthenticationManager(authManager);

			//输出一些信息来验证连接
			System.out.println(String.format("Repository Root: %s", repository.getRepositoryRoot(true)));
			
			long latestRevision = repository.getLatestRevision();
			//创建客户端管理器并设置用户凭据
			SVNClientManager clientManager = SVNClientManager.newInstance();
			clientManager.setAuthenticationManager(authManager);
			//使用SVNUpdateClient来导出
			SVNUpdateClient updateClient = clientManager.getUpdateClient();
			updateClient.setIgnoreExternals(false);
			File dstPath = new File(dest);
			SVNRevision revision = SVNRevision.create(latestRevision);
			updateClient.doExport(repository.getLocation(), dstPath, revision, revision, null, true, SVNDepth.INFINITY);
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			System.out.println("Finish.");
		}
		
	}
}
参考资料: