我需要将最新的更改从 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:
这是什么意思,为什么会弹出,我该如何修复?
谢谢!
编辑1
所以我试图将其移动到一个临时位置: 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
所以我想这不是正确的方法,但是那是什么呢?
编辑2
好的,所以现在,在解决其他一些冲突之后,我已经完成了合并,现在在提交时我得到这个:
$ 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
...
最初的冲突之所以出现,是因为jpax_vip_console
文件/文件夹是独立添加到主干和分支中的。当你现在尝试合并主干时,svn 不知道该怎么做,因为两个版本的jpax_vip_console
是不相关的。
最简单的解决方案是使用 svn 命令重命名有问题的实体,即类似 svn mv jpax_vip_console jpax_vip_console.2
.然后提交。之后,您应该能够合并主干而不会发生冲突。
如果你想实际合并两个版本的jpax_vip_console
,你必须在主干合并后手动完成,因为svn不允许你合并不相关的项目。在这种情况下,您需要选择要保留提交历史记录的项目的一个版本,并将另一个版本手动合并到其中。