我有一个svn转储文件,其中包括“空”修订(这是由svnsync创build时只同步一个现有的存储库的子目录)。
因为我想使用svnsync的仓库作为新的主(不需要再次同步),我想摆脱所有空的修订。
不幸的是,通过svndumpfilter运行转储似乎并没有删除空的修订版本,可能是因为svndumpfilter只查看它自己用–exclude选项清理的修订版(另请参见这里 )
我也在研究svoiceptool ,但似乎并没有提供这个function。
是否有可能以任何其他方式过滤这些修订?
这是我使用的命令行..它似乎工作得很好。
svnadmin dump <path_to_repo> | svndumpfilter2 <path_to_repo> [list of paths to keep] --renumber-revs --drop-empty-revs |bzip2 --best > svn_dumpfile_full.bz
“保留的path列表”可以像中继一样简单
但它确实需要你直接访问svn服务器。
好的,我一直犹豫回答这个问题,因为解决方法不是为了心脏不适,而是会让你发疯。
尝试通过从转储文件中删除空的修改来手动更改转储文件的内容。 您也可能会发现,您需要重做修订号的所有序列,并仔细检查复制实际存在的修订版本和/或将其指向正确的修订版本。
这里是棘手的部分,小心编辑转储文件。 一个额外的密钥可能会导致一个修订加载失败,因为所有的内容是哈希的检查总和。
祝你好运!
实际上我认为你需要svndumpfilter(或svndumpfilter2)的“-renumber-revs”选项,除了–drop-empty-revs