使用SVNKIT从SVN的分支获取所有的版本日志



我正在尝试使用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

现在,在重命名完成之后,当我使用旧名称运行上面的代码时,我得到一个profind错误,表示无法定位文件。但是当我用新的分支名称运行时,一切工作文件,它也给出了该分支上的活动日志,但只在重命名之前。发生在OldBranch名称上的活动没有返回。

是否有一种方法在SVNKit中获得我所期望的输出?

设置log的参数strictNode为true

如果strictNode为true,则不会遍历复制历史(如果有的话)

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

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

最新更新