将分支合并到主干

时间:2011-09-27 02:50:33

标签: svn version-control merge

我正面临着SVN merge的一个特殊问题。我想从dev分支合并到trunk。 我们有多个开发分支同时切断主干。

我正在使用此命令将其中一个分支合并到trunk:

svn merge trunk branch_1

我看到不属于此分支的更改,已合并到主干中。 我做错了什么?

SVN版本:

  

Subversion命令行客户端,版本   1.6.16-SlikSvn-tag-1.6.16@1076804-WIN32。

4 个答案:

答案 0 :(得分:210)

您的svn merge语法错误。

您想要查看trunk的工作副本,然后使用 svn merge --reintegrate 选项:

$ pwd
/home/user/project-trunk

$ svn update  # (make sure the working copy is up to date)
At revision <N>.

$ svn merge --reintegrate ^/project/branches/branch_1
--- Merging differences between repository URLs into '.':
U    foo.c
U    bar.c
 U   .

$ # build, test, verify, ...

$ svn commit -m "Merge branch_1 back into trunk!"
Sending        .
Sending        foo.c
Sending        bar.c
Transmitting file data ..
Committed revision <N+1>.

有关详细信息,请参阅SVN book chapter on merging


请注意,在撰写时,这是正确的答案(并被接受),但事情已经发生了变化。请参阅topek和http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate

的答案

答案 1 :(得分:73)

如果您的工作目录指向主干,那么您应该能够将您的分支合并到:

svn merge https://HOST/repository/branches/branch_1

请务必在主干的根目录中发出此命令

答案 2 :(得分:16)

在主干中进行svn更新,请注意修订号。

从后备箱:

svn merge -r<revision where branch was cut>:<revision of trunk> svn://path/to/branch/branchName

您可以通过执行svn log

来检查从主干切割分支的位置
svn log --stop-on-copy

答案 3 :(得分:1)

语法错误,应该是

svn merge <what(the range)> <from(your dev branch)> <to(trunk/trunk local copy)>