将2个svn分支合并在一起

时间:2010-12-08 22:21:04

标签: svn merge svn-merge

我正在使用我不习惯的svn设置,我需要将新代码从一个分支合并到另一个分支。

trunk文件夹中没有代码,所以我不知道是否应该将trunk更新为代码并更新第二个分支,或者是否有办法将一个分支更新到另一个分支。我的最后一招只是手动更新代码。

任何想法这里最好的路线是什么?我正在从终端做一切。

2 个答案:

答案 0 :(得分:7)

否不要手动更新。当然,困难将取决于这些分支的接近程度。

您始终可以将更改从分支转移到另一个分支。 假设你有两个名为branch1和branch2的分支,你想将branch2合并到branch1。

假设您在branch1(首先尝试干运行以查看是否会导致冲突)

svn merge -r LAST_MERGED_REVISION:HEAD_REVISION --dry-run url/to/branches/branch2 .

svn merge -r LAST_MERGED_REVISION:HEAD_REVISION url/to/branches/branch2 .
svn status | egrep '^C|^.C' <---Manual intervention is required for conflicts
svn update
svn ci -m "Merge changes from branch2"

你可以关闭branch2

svn merge --reintegrate url/to/branches/branch2
svn update
svn ci -m "Merged branch2 to branch1"

如果分支非常不同,这可能会失败。

答案 1 :(得分:1)

根据您使用的subversion版本,我建议使用svnmerge或subversion的内置merge tracking support。在任何情况下,很有可能从一个分支合并到另一个分支,而不使用主干(假设分支具有一些相对较近的祖先)。