今天测试之前写的代码,功能是用于读取一个svn仓库的所有记录。代码大致如下:
@Test
public void test() throws SVNException {
SVNURL url = SVNURL.parseURIEncoded("https://192.168.73.20:1443/svn/Clinic_RD/");
DAVRepositoryFactory.setup(); //初始化
ISVNOptions options = SVNWCUtil.createDefaultOptions(true); //驱动选项
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("liulei","d123456"); //提供认证
SVNRepository repos = SVNRepositoryFactory.create(url);
repos.setAuthenticationManager(authManager); //设置认证
System.out.println(">>> "+ repos.getLocation()); //打印出当前版本库路径
System.out.println(">>> "+ repos.getLatestRevision()); //获取当前版本库的最新版本
}
然而该代码的第二个输出死活打印不出来(程序执行到这一步时并没有终止,而是在不停地等待),我调试了很久,没有找到解决方案,就想着把svnkit的版本提升一下,原配置是
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.3.5</version>
<exclusions>
<exclusion>
<artifactId>sqljet</artifactId>
<groupId>org.tmatesoft.sqljet</groupId>
</exclusion>
</exclusions>
</dependency>
把版本改为1.8.14,再执行代码就好了,不知道什么原因。
需要说明的是:之前的代码在是2016-05-03提交的,当时代码中使用的svn协议是“svn://”,而今天(2018-06-07)再执行时使用的是“https://”,竟然因为版本号出问题了,总之是迷迷糊糊地解决了问题,而不知道具体原因在哪。个人推测是因为svn服务端的版本号不一致。因已不在上家公司工作了,所以就不再追查原因了。