描述:
svn merge — 应用两组源文件的差别到工作拷贝路径。
第一种和第二种形式里,源路径(第一种是URL,第二种是工作拷贝路径)用修订版本号N和M指定,这是要比较的两组源文件,如果省略修订版本号,缺省是HEAD。
-c M选项与-r N:M等价,其中N = M-1,使用-c -M则相反:-r M:N,其中N = M-1。
第三种形式,SOURCE可以是URL或者工作拷贝项目,与之对应的URL会被使用。在修订版本号N和M的URL定义了要比较的两组源。
WCPATH是接收变化的工作拷贝路径,如果省略WCPATH,会假定缺省值“.”,除非源有相同基本名称与“.”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。
不像svn diff,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。
用法:
svn merge [-c M | -r N:M] SOURCE[@REV] [WCPATH] svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH] svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH] svn merge -r m:n path 例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
例子:
1、将url指定代码的 A–B 版本[版本区间] 合并到本地,版本范围为[A,B) 半开半闭区间
svn merge url -r A:B ./ A 表示添加 B 表示删除 U 表示被更新 G 表示存在冲突但已经被解决
2、将指定url上的代码merge到本地当前文件夹下(–dry-run表示test merge)
svn merge http://192.168.0.2/svn/repo/ProD/JinZay/EE S/code/ees-tem/branches/develop -c 1149491 ./ –dry-run
3、把svn 版本号为xxxx的改动合到你的本地
svn merge url -c xxxx ./
4、将url指定的code的xxxx版本到yyyy版本,merge到本地(注意:该方式不包括xxxx版本!!
svn merge url -r xxxx:yyyy ./
5、添加–dry-run 只是模拟实现merge 的行为而不是真正的进行这个动作
svn merge url -c xxxx ./ --dry-run svn merge url -r xxxx:yyyy ./ --dry-run