我正在尝试使用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();
}

09-25 22:13