【发布时间】:2016-02-25 10:52:28
【问题描述】:
当从一个长期存在的分支合并回主干时,我遇到了数百个类似以下的冲突。
Conflict discovered when trying to add 'src/main/python/application/mail.py'.
An object of the same name already exists.
Select: (mf) my version, (tf) their version, (p) postpone,
(q) quit resolution, (h) help: tf
svn: warning: W155027: Tree conflict can only be resolved to 'working' state; '/home/me/dev/trunk/src/main/python/application/mail.py' not resolved
svn: E205011: Failure occurred resolving one or more conflicts
但是这些文件是相同的(svn diff 不返回输出)并且共享一个共同的祖先。
svn mergeinfo ^/branches/2_3_RELEASE/src/main/python/application/mail.py ^/trunk/src/main/python/application/mail.py
youngest common ancestor
| last full merge
| | tip of branch
| | | repository path
20821 20831
| |
--| |------------ branches/2_3_RELEASE/src/main/python/application/mail.py
/
/
-------| |------------ trunk/src/main/python/application/mail.py
|
20831
我们是一个大型项目,同时有多个版本在进行中。 2.2 是从主干中切出的,2.3 从 2.2 中创建,然后 2.2 合并回主干,2.3 从主干重新设置。
Trunk
|
|\ create 2.2
| *
| *
| |\ create 2.3
| * |
| | \
| |\ /
| | * merge 2.2 to 2.3
|/ *
* | 2.2 released and merge to trunk
|\ /
| * rebase 2.3 from trunk
| *
|/
* merge 2.3 to trunk, what I'm attempting now
我们做错了什么?
【问题讨论】:
-
考虑使用这种分支迁移到 Mercurial