SVN修复文件夹移动错误

时间:2010-02-28 22:41:13

标签: svn tortoisesvn

我工作的某人将文件夹移到了其他位置。但他没有做正确的SVN移动,他只是将它们添加为新文件并删除旧文件。这当然意味着物品的历史是错误的。我当时离开了,因为文件发生了几次编辑,所以恢复修改并自行重做操作。

有没有办法解决这个问题,以便SVN了解他们的完整历史?

P.S。我使用tortoiseSVN。

3 个答案:

答案 0 :(得分:7)

无法编辑Subversion存储库的历史记录内容。你必须:

  1. 从错误前修改开始重建存储库,提交正确的移动,然后在之后提交修订。这要求每个人都要获得新的工作副本,或者在要更换的修订版本之前将它们回滚(svn update -rN)。
  2. 删除已移动的文件夹,将其重新创建为旧文件夹(svn copy <url of old dir>@<old rev> <new name in wc>)的副本,然后使用svn merge将更改重新应用到旧位置文件夹的新副本。< / LI>

答案 1 :(得分:2)

这来自TortoiseSVN FAQ

  

如果你已经承诺了   删除文件,然后你可以使用   存储库浏览器,更改为   文件仍然存在的修订版本   然后使用命令Copy to ...   从上下文菜单中。输入路径   以您的工作副本作为目标和   将删除已删除的文件   存储库到你的工作副本。

     

您还可以使用此技术恢复已删除的目录。

当然,您必须先删除(或重命名)您的同事添加的文件夹。

答案 2 :(得分:1)

来自TortoiseSVN帮助 http://tortoisesvn.net/repairmoves.html

  

移动和重命名版本化文件   在工作副本中必须始终如一   用相应的完成   Subversion / TortoiseSVN命令。一个   移动/重命名没有那些(例如,与   Windows资源管理器)导致   Subversion不知道的问题   您已移动/重命名文件。

     

例如,如果重命名文件   将myfile.txt命名为myfile2.txt   没有使用   Subversion / TortoiseSVN命令,   myfile.txt将显示为“缺失”   和myfile2.txt中的“非版本化”   提交对话框或   Check-For-Modifications对话框。

     

如果您遇到这种情况,TortoiseSVN   为您提供一种简单的纠正方法   此

我知道这只是修复移动的方法,但不确定move_and_then_added。