我正在尝试使用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中是否有办法获得我期待的输出?
答案 0 :(得分:2)
您将log
的参数strictNode设置为true
如果strictNode为true,则不会遍历复制历史记录(如果有) 收获每条路径的修订日志时。
这似乎相当于大多数GUI中的复制/重命名停止。通过将其设置为false,您应该获得整个修订历史记录。
注意: svn rename
只是copy and delete。它将创建文件/文件夹的新副本并删除旧文件。