我们的团队有一个cvs存储库,我们通过cvs2svn将其转换为svn。我们的存储库有一个主分支(让我们在main中调用),它有效地充当了主干(尽管从技术上讲,它在过去很久以前就是从主干中分离出来的)。
在cvs2svn转换之后,我将main分支到branch。
我对branch做了一个小改动,然后尝试将branch重新合并到main中
[~/main] svn merge https:.../branch这应该计算出自拆分发生以来branch的差异,并将该差异应用于main。然而,它可以追溯到几年前,导致了无数的冲突。
有什么办法解决这个问题吗?我搜索了谷歌,但什么也找不到。
我知道我可以调用svn merge并传入确切的修订号。我在找一个更好的替代方案。
发布于 2010-02-02 08:51:43
您需要告诉svn merge您的合并点是什么,以便它知道要同步到main的提交范围。因为您没有指定一个范围,所以它缺省为通过HEAD修订的提交范围。这会导致太多的修改。
这将获取您将从中同步的以前的提交修订:
svn log --xml --stop-on-copy https://.../branch | grep 'revision=' | head -n 1 | sed 's/.*revision="\([0-9][0-9]*\)".*/\1/g'基本上,这将获得分支上的第一个副本修订(我将其称为"REV")。然后将其合并到' main‘副本的HEAD版本中(在main目录中):
cd main
svn merge https://.../branch:REV https://.../branch:HEAD .这应该会将“分支”副本上从REV到HEAD的所有更改应用到“主”副本。即使对于从分支到主分支的重复合并,这也应该可以很好地工作。
干杯!
https://stackoverflow.com/questions/2164972
复制相似问题