我正在尝试使用 SVNkit 在两个 svn url 上运行差异。问题是调用 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://
存储库。
关于java - SVNkit 无法创建 SVNRepoitory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/132293/