将分支合并到中继

我正面临SVN merge一个奇怪的问题。 我想从开发分支合并到主干。 我们有多个开关分支同时切断了行李箱。

我正在合并其中一个分支来使用此命令进行中继:

 svn merge trunk branch_1 

我看到不属于这个分支的变化,被合并到主干中。 我究竟做错了什么 ?

SVN版本:

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

你的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书籍合并章节 。


请注意,在写作的时候,这是正确的答案(并被接受),但事情已经开始。 查看topek的答案,以及http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate

如果你的工作目录指向了trunk,那么你应该可以把你的分支与:

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

一定要在你的trunk的根目录下发出这个命令

在trunk中做一个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 <what(the range)> <from(your dev branch)> <to(trunk/trunk local copy)>