在Subversion中重新建立由delete / add重命名的文件的历史记录

时间:2010-10-21 01:10:11

标签: svn

有人无意中重命名了SVN工作副本中的文件,删除旧文件并添加重命名的文件,而不是使用正确的SVN重命名命令。对新文件的更改仍在继续,但不幸的是,历史现在已经破裂。除非你知道在哪里看,否则你甚至不知道这是一个问题。

有没有办法让我重新链接旧文件和新文件的历史记录?

2 个答案:

答案 0 :(得分:2)

已执行了多少更改?

我的解决方案是:

  1. 删除当前文件
  2. 使用以下内容复制已删除文件的最新版本Nsvn copy -r N proto://path/to/file.ext file.ext
  3. 使用适当的svn rename
  4. 重命名
  5. 重新应用已经使用“新”文件完成的每个差异(如果它不是那么重要 - 你也可以在“新文件的第一次转换”和“新文件的最后一次转换”之间只获得一个很大的区别

答案 1 :(得分:1)

在颠覆中没有直接的方法可以做到这一点。实际上,颠覆开发者在这个话题上一直在争论很多(没有达成共识)。在您的情况下,您需要的是跳过导致删除和重命名的特定修订。如果您搜索subversion obliterate,可以查看有关此主题的更多信息。此链接在此主题上有howto

注意:除非小心谨慎,否则可能会遇到麻烦。还要确保在执行转储和加载时维护UID,否则开发人员将不得不切换到更新的仓库。