我正在尝试使用svnkit将整个SVN存储库签出到本地目录,并且在尝试SVNUpdateClient updateClient = clientManger.getUpdateClient()时;始终返回null。
我正在使用svnkit这样做。
这是我的代码:
File wcFolder=new File("some directory path");
ISVNOptions myOptions=SVNWCUtil.createDefaultOptions(true);
ISVNAuthenticationManager myAuthManager=SVNWCUtil.createDefaultAuthenticationManager("xyz","abc");
SVNClientManager clientManger = SVNClientManager.newInstance(myOptions, myAuthManager);
SVNUpdateClient updateClient = clientManger.getUpdateClient();
updateClient.setIgnoreExternals(false);
updateClient.doCheckout(SVNURL.parseURIDecoded("some path to xyz/trunk"), wcFolder, SVNRevision.HEAD,SVNRevision.HEAD, SVNDepth.INFINITY, true);
最佳答案
我找到了检出SVN的正确方法,
SVNURL svnurl = SVNURL.parseURIDecoded(url);
SVNRepository repository = SVNRepositoryFactory.create(svnurl);
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(uname, password);
repository.setAuthenticationManager(authManager);
SVNClientManager ourClientManager = SVNClientManager.newInstance();
ourClientManager.setAuthenticationManager(authManager);
SVNUpdateClient updateClient = ourClientManager.getUpdateClient();
updateClient.setIgnoreExternals(true);
long latestRevision = repository.getLatestRevision();
if (updateClient.doCheckout(svnurl, destinationDir,
SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY,
allowUnversionedObstructions) == latestRevision) {
ourClientManager.dispose();
}