今天测试之前写的代码,功能是用于读取一个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服务端的版本号不一致。因已不在上家公司工作了,所以就不再追查原因了。