我们正在将一个大的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
的使用会删除一些空的修订版,第一个“真正的”修订版之前的版本以及最后一次“真正”版本之后的版本。< / p>
答案 0 :(得分:6)
我遇到了与修订版中已包含的空修订版相同的问题。从Subversion 1.7开始,仍有一个未记录的开关,允许过滤所有空的修订。
svndumpfilter --drop-all-empty-revs include / < oldrepos.dump > newrepos.dump
可以在grokbase找到更多信息。
答案 1 :(得分:4)
经过几个小时的测试,阅读svndumpfilter源代码(评论很好,做得好!),我意识到这些空修订不是来自我的过滤。
他们已经在我原来的转储和日期从2005年开始。
结论:首先检查您的数据!!
答案 2 :(得分:2)
我无法确定您的情况,但就我而言,过滤导致数千条填充消息显示在日志中。我通过包含这两个开关来解决它:
--drop-empty-revs --renumber-revs
第二个开关使得如果您的过滤器,例如,包括转速1000-1200,但然后排除1201-5000,它包括的下一个转数将编号为1201,而不是5001,这将导致创建几千空填充转速。