使用SVNKIT从SVN中的分支获取所有修订日志

时间:2011-12-21 10:39:03

标签: java svn svnkit

我正在尝试使用SVN Kit获取在我的Java代码中的分支上执行的所有活动。

SVNRepository repository = SVNRepositoryFactory.create(svnURL);
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("UserName", "password");
repository.setAuthenticationManager(authManager);
Collection logEntries = repository.log(new String[] { "" }, null, 0, -1, true, true);

上面的代码就像一个魅力,我得到了我的svnURL属性表示的分支上的所有活动。

但真正的问题出现在一些活动后,分支本身被重命名。例如

Initial Branch => https://domain/repository/branches/OriginalName
New
Branch =>  https://domain/repository/branches/NewName

现在,重命名发生后,当我使用旧名称运行上面的代码时,我得到一个propfind错误,说明无法找到该文件。但是当我使用新的分支名称运行时,一切都工作文件,并且它还在该分支上提供活动日志,但仅在重命名之前。不返回OldBranch名称上发生的活动。

SVNKit中是否有办法获得我期待的输出?

1 个答案:

答案 0 :(得分:2)

您将log的参数strictNode设置为true

  

如果strictNode为true,则不会遍历复制历史记录(如果有)   收获每条路径的修订日志时。

这似乎相当于大多数GUI中的复制/重命名停止。通过将其设置为false,您应该获得整个修订历史记录。

注意: svn rename只是copy and delete。它将创建文件/文件夹的新副本并删除旧文件。