我正面临着SVN merge
的一个特殊问题。我想从dev分支合并到trunk。
我们有多个开发分支同时切断主干。
我正在使用此命令将其中一个分支合并到trunk:
svn merge trunk branch_1
我看到不属于此分支的更改,已合并到主干中。 我做错了什么?
SVN版本:
Subversion命令行客户端,版本 1.6.16-SlikSvn-tag-1.6.16@1076804-WIN32。
答案 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)>