【发布时间】:2011-05-22 12:48:49
【问题描述】:
我正在使用我不习惯的 svn 设置,我需要将新代码从一个分支合并到另一个分支。
主干文件夹中没有代码,所以我不知道是否应该将主干更新为代码并更新第二个分支,或者是否有办法将一个分支更新到另一个分支。我最后的办法就是手动更新代码。
你知道这里最好的路线是什么吗?我在终端上做所有事情。
【问题讨论】:
我正在使用我不习惯的 svn 设置,我需要将新代码从一个分支合并到另一个分支。
主干文件夹中没有代码,所以我不知道是否应该将主干更新为代码并更新第二个分支,或者是否有办法将一个分支更新到另一个分支。我最后的办法就是手动更新代码。
你知道这里最好的路线是什么吗?我在终端上做所有事情。
【问题讨论】:
否不要手动更新。当然,难度将取决于这些分支的距离。
您始终可以将更改从一个分支带到另一个分支。 假设您有两个名为 branch1 和 branch2 的分支,并且您想将 branch2 合并到 branch1。
假设你在branch1(先试试dry run,看看会不会导致冲突)
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"
如果分支非常不同,这可能会失败。
【讨论】:
根据您使用的 subversion 版本,我建议使用 svnmerge,或 subversion 的内置 merge tracking support。在任何情况下,都可以从一个分支合并到另一个分支,而无需使用主干(假设分支有一些相对接近的祖先)。
【讨论】: