通过从trunk合并更新我的分支时出错

时间:2016-01-22 18:45:36

标签: svn branch merge-conflict-resolution svn-trunk

我需要从trunk进入我的分支的最新更改,所以我执行了svn merge ^/trunk/FW,直到现在已经工作得很好(我可以手动修复的小冲突)。但我现在遇到了一个我不知道如何修复甚至阅读/理解的冲突:

Conflict discovered when trying to add 'src/rtos_core/jpax_bsp_vip/jpax_vip_console'.
An object of the same name already exists.
Select: (mf) my version, (tf) their version, (p) postpone,
        (q) quit resolution, (h) help:   

这是什么意思,为什么会弹出它,我该如何解决?

谢谢!

EDIT1
所以我试图将它移动到一个临时位置: mv src/rtos_core/jpax_bsp_vip/jpax_vip_console ~/tmp/jpax_vip_console然后我选择tf (their version),我告诉他们: svn: E155027: Tree conflict can only be resolved to 'working' state; '/home/ron/src/NextGen/branches/Ron/src/rtos_core/jpax_bsp_vip/jpax_vip_console' not resolved
好的,我再次使用svn merge ^/trunk/FW,现在它告诉我:svn: E195016: Merge tracking not allowed with missing subtrees; try restoring these items first: /home/ron/src/NextGen/branches/Ron/src/rtos_core/jpax_bsp_vip/jpax_vip_console
所以我想这不是正确的做法,但那又是什么呢?

EDIT2
好的,现在,在解决了一些其他冲突之后,我已经完成了合并,现在提交我得到了这个:

$ svn ci -m " merged changes from trunk"
svn: E155015: Commit failed (details follow):
svn: E155015: Aborting commit: '/home/ron/src/NextGen/branches/Ron/src/rtos_core/jpax_bsp_vip/jpax_vip_console' remains in conflict

为什么它说它仍然存在冲突,svn stat给了我:

...
    > moved to src/rtos_core/jpax_bsp_vip/jpax_vip_console.2
...
...
  C src/rtos_core/jpax_bsp_vip/jpax_vip_console
  >   local dir obstruction, incoming dir add upon merge
...

1 个答案:

答案 0 :(得分:1)

原始冲突的产生是因为jpax_vip_console文件/文件夹是在主干和您的分支中独立添加的。当您尝试合并trunk时,svn不知道该怎么做,因为jpax_vip_console的两个版本都是不相关的。

最简单的解决方案是使用svn命令重命名有问题的实体 ,例如svn mv jpax_vip_console jpax_vip_console.2。然后提交。之后,您应该能够合并trunk而不会发生冲突。

如果要实际合并jpax_vip_console的两个版本,则必须在中继合并后手动执行此操作,因为svn不允许内容合并不相关的项目。在这种情况下,您需要选择一个版本的项目,您希望保留其中的提交历史记录,并将其他版本手动合并到其中。