我需要从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
...
答案 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不允许内容合并不相关的项目。在这种情况下,您需要选择一个版本的项目,您希望保留其中的提交历史记录,并将其他版本手动合并到其中。