1

我正在尝试使用 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 中是否有办法按我的预期获得输出?

4

1 回答 1

2

您将参数strictNode设置为logtrue

如果 strictNode 为真,则在收集每个路径的修订日志时不会遍历复制历史记录(如果存在)。

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

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

于 2011-12-21T10:45:01.680 回答