svndumpfilter --drop-empty-revs 保持填充修订
Posted
技术标签:
【中文标题】svndumpfilter --drop-empty-revs 保持填充修订【英文标题】:svndumpfilter --drop-empty-revs keeps padding revision 【发布时间】:2012-03-20 16:53:43 【问题描述】:我们正在将一个大型 svn 存储库(100k+ revs)拆分为几个较小的存储库。 我正在使用 svndumpfilter (v1.7.2) 来拆分转储和 svndumptool/sed 来过滤大转储。
一切正常,除了过滤后的转储中仍有一些“填充修订”,即使我使用了选项“drop-empty-revs”。
当我们只有不到 10% 的无用“填充修订”时,这并没有太大问题,但有时,新的 repo 只有几百个真正的修订,这些修订隐藏在 30k+ 的“填充修订”中。
这是我使用的命令和包含的修订版
svndumpfilter --drop-empty-revs --renumber-revs include /MyProj < MassiveOldRepo.dump > NewAllCleanRepo.dump
------------------------------------------------------------------------
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line
This is an empty revision for padding.
------------------------------------------------------------------------
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line
This is an empty revision for padding.
------------------------------------------------------------------------
我想知道是否有办法在我过滤转储时不包含这些修订(无需手动从过滤后的转储中删除它们)。
编辑:我要补充一点,我对svndumpfilter
的使用会删除一些空修订,即第一个“真实”修订之前的修订和最后一个“真实”修订之后的修订。
【问题讨论】:
【参考方案1】:我遇到了同样的问题,即存储库中已包含空修订。从 Subversion 1.7 开始,还有一个未记录的开关允许过滤所有空修订。
svndumpfilter --drop-all-empty-revs include / < oldrepos.dump > newrepos.dump
更多信息请访问grokbase。
【讨论】:
【参考方案2】:经过数小时的测试,阅读 svndumpfilter 源代码(评论非常好,干得好!),我意识到这些空的修订不是来自我的过滤。
它们已经在我原来的转储中,日期为 2005 年。
结论:先检查你的数据!!
【讨论】:
【参考方案3】:我无法确定您的情况,但就我而言,正是过滤导致了数千条填充消息出现在日志中。我通过包含这两个开关解决了它:
--drop-empty-revs --renumber-revs
第二个开关是这样的,例如,如果您的过滤器包含 rev 1000-1200,但随后排除了 1201-5000,则它包含的下一个 rev 将编号为 1201,而不是 5001,这将导致创建几千空填充转速。
【讨论】:
以上是关于svndumpfilter --drop-empty-revs 保持填充修订的主要内容,如果未能解决你的问题,请参考以下文章
svndumpfilter --drop-empty-revs 保持填充修订