乌龟SVN树冲突与自己
问题描述:
有没有人曾在乌龟移动文件,并成功提交的经验,后来才犯了不同的变化,被告知树冲突的地方:乌龟SVN树冲突与自己
- 在文件的原始位置已被删除,但乌龟被标记为丢失
- 该文件在其新位置存在,但标记为已添加。
(我用龟SVN,我们有客户端和服务器> 1.60)
没有其他人,或者更改目录或文件(根据SVN日志)。
- 这是怎么发生的?
- 有没有办法避免它发生?
- 如果确实发生,是否有更好的方法来解决问题,而不是删除整个文件夹并再次更新?
答
听起来也许你使用Windows资源管理器“移动”命令,而不是龟“移动”命令移动的文件。前者只是在文件系统中移动文件而不更新Subversion树(从版本控制中删除旧文件并将旧文件的历史记录链接到新文件)。
始终使用TortoiseSVN的“移动”命令,或者如果你想有一个移动没有历史文件,然后复制使用Windows资源管理器中,用龟添加新的版本,然后删除旧版本的龟。
您可以右键单击旧文件的父文件夹,选择“检查修改”,然后从版本控制中删除标记为缺失的文件。
答
我通过r-点击文件夹,选择'rename',并使用“newpath \ to \ folder”作为参数进入树冲突。经过多次失败的清理命令和一些其他的东西后,我终于恢复了用理智:
- 开放新的干净的检出到其他文件夹
- SVN删除和犯坏了“的新路径\为\文件夹”从干净的检出
- 选择“oldpath \文件夹” R单击拖动和svn移动到新位置
- 立即没有其他业务承诺改变中间
- 去打破签“oldpath \文件夹”,然后手动复制文件whic h被删除或留在'newpath \ to \ folder'
- 添加手动复制的文件,就好像它们是新的一样。
手动更新文件的无缝历史链被打破,但至少我现在可以继续工作。
不对。我用右键单击拖动“用svn移动”。 3.只解决了一半的问题,因为我仍然无法提交,因为该文件正在等待检查回购认为已经签入。我可以解决这个明显的错误的唯一方法是删除文件夹并更新。 – 2010-06-03 12:22:47
@Jesse,当你在移动后成功提交时,你从什么级别提交?工作副本的顶层,子目录还是什么? – 2010-06-03 14:49:46
我从我的源代码树的根提交。 – 2010-06-10 15:17:54