svnadmin加载重新编号

时间:2014-02-20 14:06:54

标签: svn svnadmin svndumpfilter

我有一个包含多个项目的大型单一存储库。我使用svnadminfilter命令从一个完整的存储库转储中过滤掉了一些项目。

我使用--drop-empty-revs开关(并且没有--renumber-revs开关)转储了完整的存储库,这会删除空修订并保留特定于这些项目的相关修订。现在,在将转储重新加载到新位置的新存储库时,它会从1开始重新编号这些修订,但我想保留这些修订。

svnadmin加载是否还有可用的开关?

2 个答案:

答案 0 :(得分:1)

这里的技巧是创建空修订以创建填充,直到达到所需的修订版号。

但是,在svnadmin加载中没有切换。您需要手动创建它们,或使用rsvndump之类的工具。

从联系人页面: --keep-revnums
保持输出中的修订号与存储库同步。如有必要,可以通过插入空的修订版来完成此操作。

  

REVISION NUMBERS

     

转储输出中的修订号取决于选项和   给rsvndump的路径。如果你正在倾销一个根   存储库,您无需担心修订号   当然是同步的。如果要转储子目录,则只修改修订   更改此子目录将发生在转储输出中。该   转储中的修订号是严格顺序的,所以它们会   与原来不同。

     

如果您需要保留原始存储库中的修订号   (例如,如果错误跟踪器依赖于它们),您可以使用   --keep-revnums标志。它填充的修订版没有更改带有空修订的子目录。他们没有作者或日期   属性,但包含日志消息“这是一个空的修订版本   填充“。

(请注意,您很可能需要自己编译rsvndump版本。)


如果您想手动创建填充,您仍然可以编写提交列表的脚本。以下是如何执行此操作的示例: http://hmcguirk.blogspot.ca/2010/06/subversion-trimming-old-commits-keeping.html

答案 1 :(得分:0)

svndumpfilter --drop-empty-revs似乎无法与svnadmin load一起使用。因此,过滤时只需不要使用开关--drop-empty-revs。无论如何,空的修订仅占转储的最小比例。