将一个分支合并到 Trunk 中

我在使用 SVNmerge时遇到了一个特殊的问题。我想从一个开发分支合并到主干。 我们有多个开发分支同时切断主干。

我用下面的命令将其中一个分支合并到主干:

svn merge trunk branch_1

我看到不属于这个分支的更改被合并到主干中。 我做错了什么?

SVN 版本:

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

224453 次浏览

在主干中执行一个 svn 更新,注意修订号。

后备箱里的:

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

您可以通过执行 svn 日志来检查分支从主干中被切断的位置

svn log --stop-on-copy

如果你的工作目录指向树干,那么你应该能够合并你的分支:

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

一定要在主干的根目录下发出这个命令

您的 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>.

有关更多细节,请参见 关于合并的一章


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

语法是错误的,应该改为

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