首页 文章

Tortoise SVN树与我自己发生冲突

提问于
浏览
3

有没有人有过在乌龟中移动文件并成功提交的经验,只是为了稍后提交不同的更改并被告知树冲突:

  • 已删除原始位置的文件,但在龟中标记为丢失

  • 新位置的文件在那里,但标记为已添加 .

(我使用陆龟SVN,我们有客户端和服务器> 1.60)

没有其他人改变目录或文件(根据svn日志) .

  • 为什么会这样?

  • 有没有办法避免它发生?

  • 如果它确实发生了,是否有一种更优雅的方法来修复问题,而不是删除整个文件夹并再次更新?

3 回答

  • 3
    • 听起来好像您使用Windows资源管理器“移动”命令而不是Tortoise“移动”命令移动了文件 . 前者只是在文件系统中移动文件而不更新subversion树(从版本控制中删除旧文件并将旧文件的历史记录链接到新文件) .

    • 始终使用TortoiseSVN“移动”命令,或者如果您想要移动没有历史记录的文件,则使用Windows资源管理器复制文件,使用Tortoise添加新版本,然后使用Tortoise删除旧版本 .

    • 您可以右键单击旧文件的父文件夹,选择“检查修改”,然后从版本控制中删除标记为缺失的文件 .

  • 0

    听起来像你提交了文件,但没有提交到/来自的目录 . 您还需要提交目录 .

  • 1

    通过单击文件夹,选择“重命名”,并使用“newpath \ to \ folder”作为参数,我遇到了树冲突 . 经过多轮失败的清理命令和其他一些事情后,我终于通过以下方式恢复了理智:

    • 将新的干净结帐打开到另一个文件夹中

    • svn从清理结账中删除并提交损坏的'newpath\to\folder'

    • 选择'oldpath\folder' r单击拖动并将svn移动到新位置

    • 立即提交更改,中间没有其他操作

    • 去破解签到'oldpath\folder'并手动复制已删除或留下的文件'newpath\to\folder'

    • 添加手动复制的文件,就像它们是新的一样 .

    手动更新的文件中断了无缝历史链,但至少我现在可以继续工作了 .

相关问题