svnadmin 加载重新编号修订
Posted
技术标签:
【中文标题】svnadmin 加载重新编号修订【英文标题】:svnadmin load renumbers revisions 【发布时间】:2014-02-20 14:06:53 【问题描述】:我有一个包含多个项目的大型单一存储库。我正在使用 svnadminfilter 命令从完整的存储库转储中过滤掉几个项目。
我已经使用--drop-empty-revs
开关(并且没有--renumber-revs
开关)转储了完整的存储库,它删除了空修订并保留了特别是那些项目的相关修订。现在,在将转储重新加载到新位置的新存储库时,它会从 1 开始对这些修订进行重新编号,但我想保留这些修订。
svnadmin load 是否也有可用的开关?
【问题讨论】:
svnadmin load but keep the revision numbers 的可能重复项 【参考方案1】:这里的技巧是创建空修订以创建填充,直到达到所需的修订号。
但是,在 svnadmin load 中没有开关可以做到这一点。您要么需要手动创建它们,要么使用rsvndump 之类的工具。
从手册页: --keep-revnums 保持输出中的修订号与存储库同步。这是通过在必要时插入空白修订来完成的。
修订号
转储输出中的修订号取决于选项和 给 rsvndump 的路径。如果你正在转储一个 存储库,您无需担心版本号 同步,当然。如果要转储子目录,则只有修订 更改此子目录的内容将出现在转储输出中。这 转储中的修订号是严格按顺序排列的,因此它们将 与原版不同。
如果您需要保留原始存储库中的修订号 (例如,如果错误跟踪器依赖于它们),您可以使用 --keep-revnums 标志。它使用空修订填充未更改子目录的修订。他们没有作者或日期 属性,但包含日志消息“这是一个空的修订版 填充。”。
(请注意,您很可能需要自己编译 rsvndump 版本。)
如果您想自己手动创建填充,您仍然可以编写提交列表的脚本。这是有关如何执行此操作的示例: http://hmcguirk.blogspot.ca/2010/06/subversion-trimming-old-commits-keeping.html
【讨论】:
【参考方案2】:似乎svndumpfilter --drop-empty-revs
不能与svnadmin load
一起使用。因此,过滤时不要使用开关--drop-empty-revs
。无论如何,空的修订版只占转储的最小比例。
【讨论】:
以上是关于svnadmin 加载重新编号修订的主要内容,如果未能解决你的问题,请参考以下文章