Search code examples
javasvnsvnkitsvn-checkout

Unable to checkout the entire SVN repository to local machine using svnkit


I am trying to checkout an entire SVN repository using svnkit to local directory and when I try the SVNUpdateClient updateClient = clientManger.getUpdateClient(); always return null. I am using svnkit to do so.

Here is my code:

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

Solution

  • I found the correct way of checking out the 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();
    }