在subversion存储库中,有一个具有很长变化历史的二进制文件(MS Word文档)。最近,该文件被以下有问题的操作修改,丢失了历史记录。首先,制作副本并将其提交到存储库:
$ cp original.docx copy.docx
$ svn add copy.docx
$ svn commit
接下来,编辑并多次提交副本。 (original.docx从未被修改过。)
最后,原始文件被使用" svn mv"的副本替换:
$ svn mv original.docx oldjunk.docx
$ svn mv copy.docx original.docx
$ svn commit
这很糟糕,因为" original.docx"的历史很多。不再被" svn log original.docx" - 历史记录在" oldjunk.docx"。
作者打算在#j; oldjunk.docx" svn rm oldjunk.docx"在未来,这将失去所有的历史。允许该命令的最佳颠覆操作顺序是什么:
$ svn log original.docx
显示追加历史(现在称之为)original.docx和oldjunk.docx?
请记住这些是二进制文件,因此我们无法随意合并内容。
谢谢。
答案 0 :(得分:0)
svn log original.docx
now 必须显示copy.docx 和 original.docx的历史记录
(由于正确的重命名)oldjunk.docx
(您可以从{{找到此修订版本) 1}}),对于svn log -v
中的$N = $REVISION - 1
,您将能够获得original.docx + oldjunk.docx的历史记录你可以(理论上)在存储库中使用大量技巧和黑魔法重写历史记录,并通过正确的修改替换svn log oldjunk.docx@K
,但是: