我正在使用svnkit导出Subversion存储库。我正在使用https://gist.github.com/cliffdarling/2360866中的代码,并做了一些与读取命令行参数有关的修改。我在ubuntu 16上运行此程序。subversion服务器使用Windows身份验证。当我运行代码时,我会不时跟踪异常情况。
org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Authentication required for 'https://subversion.myserver.com:443' at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVNErrorManager.java:53) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVNErrorManager.java:47) at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:233) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:724) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:391) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:379) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:862) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:698) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:118) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1049) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:189)
Java代码由bash脚本运行,并在URL列表中循环。我使用vm选项-Dsvnkit.http.methods = Digest,Basic,NTLM,Negotiate。 jar文件执行如下。
java -Dsvnkit.http.methods=Digest,Basic,NTLM,Negotiate -jar exporter.jar url
代码适用于某些回购网址,但有时会失败。这是随机发生的。在Windows中,代码可以正常工作。我找不到解决方案。为什么会发生?