SVNkit无法创建SVNRepoitory

时间:2020-03-06 14:42:40  来源:igfitidea点击:

我正在尝试使用SVNkit在两个svn网址上运行差异。问题是当调用diff.doDiff时出现错误。

org.tmatesoft.svn.core.SVNException: svn: Unable to create
  SVNRepository object for
  'http://svn.codehaus.org/jruby/trunk/jruby/src/org/jruby/Finalizable.java'
    at
  org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:55)
    at
  org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:40)
    at
  org.tmatesoft.svn.core.io.SVNRepositoryFactory.create(SVNRepositoryFactory.java:199)
    at
  org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool.createRepository(DefaultSVNRepositoryPool.java:213)
    at
  org.tmatesoft.svn.core.wc.SVNClientManager.createRepository(SVNClientManager.java:242)
    at
  org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:231)
    at
  org.tmatesoft.svn.core.wc.SVNDiffClient.doDiffURLURL(SVNDiffClient.java:769)
    at
  org.tmatesoft.svn.core.wc.SVNDiffClient.doDiff(SVNDiffClient.java:310)
    at SVNTest.main(SVNTest.java:30)

我已经仔细检查了URL(可以在TortoiseSVN客户端中打开它们)。有人可以帮我知道发生了什么吗?我已经在下面发布了我正在运行的代码。

SVNClientManager manager = SVNClientManager.newInstance(SVNWCUtil.createDefaultOptions(false), user, pass);

SVNDiffClient diff = manager.getDiffClient();
    //ISVNDiffStatusHandler diffStatus = new ISVNDiffStatusHandler();

try {
SVNURL oldURL = SVNURL.parseURIDecoded(url);    
diff.doDiff(SVNURL.parseURIDecoded(url), SVNRevision.create(oldVersion), SVNURL.parseURIDecoded(url), SVNRevision.HEAD, false, false, System.out);
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

解决方案

我们是否调用了以下静态方法?

DAVRepositoryFactory.setup();

在访问任何" http://"存储库及类似存储库之前,必须先调用此方法

SVNRepositoryFactoryImpl.setup();

应该用于svn://信息库。