首页 > 代码库 > svn merge
svn merge
这里针对1.7版本的svn。
merge是svn命令中比较麻烦的一个,所以特别记录一下。
下面链接有一个gui使用的例子:
http://blog.csdn.net/keda8997110/article/details/21813035
命令行的例子如下:
http://svnbook.red-bean.com/nightly/zh/svn.branchmerge.basicmerging.html#ftn.idp7707344
保持分支同步,从主干合并修改到分支:
$ pwd/home/user/my-calc-branch$ svn merge ^/calc/trunk--- Merging r345 through r356 into ‘.‘:U button.cU integer.c$
$ svn status M .M button.cM integer.c$
$ svn commit -m "Merged latest trunk changes to my-calc-branch."Sending .Sending button.cSending integer.cTransmitting file data ..Committed revision 357.$
重新集成分支,和并分支修改到主干:
$ pwd/home/user/calc-trunk$ svn update # (make sure the working copy is up to date)At revision 390.$ svn merge --reintegrate ^/calc/branches/my-calc-branch--- Merging differences between repository URLs into ‘.‘:U button.cU integer.cU Makefile U .$ # build, test, verify, ...$ svn commit -m "Merge my-calc-branch back into trunk!"Sending .Sending button.cSending integer.cSending MakefileTransmitting file data ..Committed revision 391.
$ svn delete ^/calc/branches/my-calc-branch -m "Remove my-calc-branch, reintegrated with trunk in r391."Committed revision 392.
svn各个版本改进:
http://subversion.apache.org/docs/release-notes/1.5.html#merge-tracking
Merge tracking (foundational) (client and server)
Merging changes from (say) trunk to a branch no longer requires that you specify the revision range. Instead, each time you want to sync up with trunk, you can just do:
$ cd BRANCH_WORKING_COPY $ svn merge URL_TO_TRUNK
Subversion will figure out what changes from URL_TO_TRUNK have not yet been merged and pull in just those changes. When it‘s time to merge the branch back to trunk, do this:
$ cd TRUNK_WORKING_COPY $ svn merge --reintegrate URL_TO_BRANCH
http://subversion.apache.org/docs/release-notes/1.6.html#repository-root-relative-urls
Repository root relative URLs (client)
This section is currently incomplete, please help write it! See the design notes for more information.
$ svn SUBCOMMAND ^/ $ svn SUBCOMMAND ^/PATH
http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate
Automatic reintegration merge (--reintegrate option deprecated) ?
During merges which merge all eligible revisions from another branch, Subversion 1.8 will automatically decide whether or not the merge is reintegrating a branch. Therefore, reintegrating a branch does no longer require the --reintegrate option for correct operation.
The --reintegrate option of svn merge is now deprecated and its use is discouraged. To reintegrate a branch, have a clean working copy of trunk and run the following command in its top-level directory:
$ svn merge ^/branches/my-branch
svn merge