重写历史记录,删除两个提交删除并重新添加

时间:2013-11-14 00:44:17

标签: svn

假设我在trunk中有以下树:

app
├── file1
├── file2
├── file3

不幸的是,在提交中我意外删除了app文件夹,因此提交包含一个更改,但删除了我的整个代码。我在下次提交中重新上传它们,其中有3个更改,添加了3个文件和文件夹。在重新添加之后我已经承诺了。

我没有松开代码,但这样我在删除提交之前丢失了这些文件的历史记录。有没有办法以某种方式消除这两个提交,所以我可以找回这些文件的历史记录?

1 个答案:

答案 0 :(得分:1)

有一些方法可以使用转储/编辑/加载过程从存储库中删除提交,但我认为更简单的方法只是从早期版本中分支。

  • 说你有修订版15
  • 然后你删除了app(r16)
  • 然后你再次添加并提交了应用程序(r17)

所以你可以做的是

  • svn del ^ / trunk / app
  • svn cp ^ / trunk / app @ 15 ^ / trunk / app

现在您的应用目录已恢复,并带有历史记录。唯一的缺点是副本意味着您必须在查看日志时禁用--stop-on-copy以进一步查看。当我不小心删除了一个发布分支时,我使用了同样的方法。