我正在使用我不习惯的svn设置,我需要将新代码从一个分支合并到另一个分支。
trunk文件夹中没有代码,所以我不知道是否应该将trunk更新为代码并更新第二个分支,或者是否有办法将一个分支更新到另一个分支。我的最后一招只是手动更新代码。
任何想法这里最好的路线是什么?我正在从终端做一切。
答案 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。在任何情况下,很有可能从一个分支合并到另一个分支,而不使用主干(假设分支具有一些相对较近的祖先)。