如何批量重写 SVN 日志?

Posted

技术标签:

【中文标题】如何批量重写 SVN 日志?【英文标题】:How do I batch rewrite an SVN log? 【发布时间】:2011-10-01 15:56:31 【问题描述】:

我需要对更改我的 SVN 存储库的用户名进行搜索/替换;我们正在进行一些组织更改,因此我需要将日志中各种更改的作者“fantasticMan”更改为“authorA”(只是一个示例)。

我的想法是 svn dump 然后对转储文件进行搜索/替换。问题是在第一次结帐后,它只能到达修订版 1;当我执行svnadmin load 命令时,我收到了这条消息:svnadmin: Dumpstream data appears to be malformed。我怀疑日志中有一些校验和以确保转储文件的完整性,因此我不能只对转储文件进行搜索和替换。

如何更改存储库的作者姓名? (如果有办法做到这一点而不必转储存储库然后重新加载转储,我更喜欢这种解决方案。)

【问题讨论】:

【参考方案1】:

Is there a way to change a SVN users username through the entire repository history?

使用svndumptool 效果最好。 AH 的方式会花费我更长的时间。

【讨论】:

【参考方案2】:

您可以为此使用svnadmin setrevprop。用 Linux 说话:

svnadmin setrevprop -r1 MyRepoDir svn:author <(echo -n NewAuthor)

那么接下来的问题将是:如何搞定老作者:

svnlook author -r1 MyRepoDir

因此,您基本上将从修订版 1 迭代到“最年轻”,并在途中映射每个作者。我希望你没有像某些 Apache 存储库那样多的修订。 :-)

【讨论】:

以上是关于如何批量重写 SVN 日志?的主要内容,如果未能解决你的问题,请参考以下文章

Win7如何批量删除.svn文件

如何批量删除.svn文件

如何将缺少的 svn:author 批量添加到存储库或转储中?

SVN 批量删除或添加文件

批量验证 svn 存储库

SVN常见错误解决办法和批量add等命令