两种方式解释svn merge命令使用:
一、命令行;
二、小乌龟TortoiseSVN;
一、命令行
1、其中一种命令行合并方式,svn merge -r N:M url ./
使用案例:场景:将branches下相应项目的修改合并到主干。
方式:当前位于trunk下相应工程的目录,在该目录下执行以上命令,意义“将分支下该对应目录中N-M的修改,应用到当前目录”,其中,url:为branches下该相应目录。
merge [-c M[,N…] | -r N:M …] SOURCE[@REV] [WCPATH]
选项说明:
-r [–revision] ARG:表示版本号,ARG一般可以有以下几种:
NUMBER:版本号
‘{‘DATE’}’:开始时间为DATE的版本
‘HEAD’:版本库中最新的版本
‘BASE’:工作路径中的BASE版本
‘COMMITTED’:BASE版本最近的一次commit版本
‘PREV’:COMMITTED之前的那个版本
-c [–change] ARG: 表示更改,ARG的定义与上面相同。
该命令中,SOURCE可以为url或者工作路径.
-r与-c的最终作用是相同的,都是将版本号为N和M的SOURCE(可以是URL或者是工作拷贝路径)进行diff后,将更改应用到WCPATH(如果为空,则默认为当前路径)。“-c M”相当于“-r :M”,“-c -M”相当于“-r M:”。如果范围未指定,默认的则为“0:REV”。
二、小乌龟TortoiseSVN
1、其中一种合并方式【即,可以选择分支合并的版本,主干不能选择版本;】
比如:将分支中某工程的修改合并到主干上相应工程。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。
合并的源URL:要合并的分支的URL,
(1)待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变;
(2)或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。
(3)如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不会合并。
图片操作:
在主干上,右键选择,合并当前分支上的版本变化到主干