我们将一个大型svn存储库(100k+ rev)拆分为几个较小的repos。我使用svndumpfilter (v1.7.2)来拆分转储,使用svndumptool/sed来过滤大转储。
一切正常工作,除了我的过滤转储仍然有一些“填充修订”,即使我使用了“空空如也”选项。
这不是太成问题,当我们有不到10%的无用的“填充修订”,但有时,新的回购只有几百个真正的修订埋在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的使用删除了一些空的修订,在第一次“真实”修订之前,以及在最后一次“真实”修订之后。
发布于 2012-03-21 08:49:47
经过几个小时的测试,阅读了svndumpfilter源代码(注释得很好,做得很好!),我意识到这些空的修订不是来自我的过滤。
他们已经躺在我原来的垃圾堆里,从2005年开始。
结论:首先检查你的数据!!
发布于 2013-10-08 13:30:01
在存储库中已经包含了空的修订,我也遇到了同样的问题。因为Subversion 1.7,还有一个仍然没有文档的开关,它允许过滤所有的空修订。
svndumpfilter --drop-all-empty-revs include / < oldrepos.dump > newrepos.dump更多信息可以在根基上找到。
发布于 2013-02-05 23:12:37
我不能确定您的情况,但在我的例子中,是过滤导致数以千计的填充消息出现在日志中。我通过包括这两个开关来解决这个问题:
--drop-empty-revs --renumber-revs第二个开关使得如果您的过滤器包括rev 1000-1200,但随后排除1201-5000,则它包含的下一个rev将编号为1201,而不是5001,这将导致创建几千个空填充转速。
https://stackoverflow.com/questions/9791317
复制相似问题