有没有人在使用tortoise SVN时遇到过这种情况:移动文件并成功提交,但后来提交另一个更改时却被告知存在树冲突,其中:
- 原始位置的文件已被删除,但在tortoise中标记为丢失
- 新位置的文件已经存在,但被标记为已添加。
(我使用的是tortoise SVN,我们的客户端和服务器版本均>1.60)
没有其他人更改过目录或文件(根据svn日志)。
- 为什么会出现这种情况?
- 有没有办法避免它发生?
- 如果确实发生了,是否有比删除整个文件夹并重新更新更优雅的解决方法?
有没有人在使用tortoise SVN时遇到过这种情况:移动文件并成功提交,但后来提交另一个更改时却被告知存在树冲突,其中:
(我使用的是tortoise SVN,我们的客户端和服务器版本均>1.60)
没有其他人更改过目录或文件(根据svn日志)。
听起来你可能是使用了Windows资源管理器的“移动”命令,而不是TortoiseSVN的“移动”命令。前者只是在文件系统中移动文件,而没有更新版本控制树(删除旧文件的版本控制并将旧文件的历史链接到新文件)。
始终使用TortoiseSVN的“移动”命令,或者如果您想要移动文件但不需要历史记录,则使用Windows资源管理器复制文件,使用Tortoise添加新版本,然后使用Tortoise删除旧版本。
您可以右键单击旧文件的父文件夹,选择“检查修改”,然后从版本控制中删除标记为缺失的文件。
我在右键单击文件夹,选择“重命名”,并将“newpath\to\folder”用作参数时遇到了树冲突。经过多轮失败的清理命令和其他一些操作后,我最终通过以下步骤恢复了正常:
手动更新的文件的无缝历史链已经断开,但至少现在我可以继续工作了。