我工作的某人将文件夹移到了其他位置。但他没有做正确的SVN移动,他只是将它们添加为新文件并删除旧文件。这当然意味着物品的历史是错误的。我当时离开了,因为文件发生了几次编辑,所以恢复修改并自行重做操作。
有没有办法解决这个问题,以便SVN了解他们的完整历史?
P.S。我使用tortoiseSVN。
答案 0 :(得分:7)
无法编辑Subversion存储库的历史记录内容。你必须:
svn update -rN
)。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。