svn merge
最后更新于:2022-04-02 05:58:18
### 名称
svn merge ― 应用两组源文件的差别到工作拷贝路径。
### 概要
~~~
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
~~~
~~~
svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
~~~
~~~
svn merge -r N:M SOURCE[@REV] [WCPATH]
~~~
### 描述
第一种形式,源URL用修订版本号*`N`*和*`M`*指定,这是要比较的两组源文件,如果省略修订版本号,缺省是`HEAD`。
第二种形式,*`SOURCE`*可以是URL或者工作拷贝项目,与之对应的URL会被使用。在修订版本号*`N`*和*`M`*的URL定义了要比较的两组源。
*`WCPATH`*是接收变化的工作拷贝路径,如果省略*`WCPATH`*,会假定缺省值“`.`”,除非源有相同基本名称与“`.`”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。
不像**svn diff**,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。
### 别名
无
### 变化
工作拷贝
### 是否访问版本库
只有在对URL操作时会
### 选项
~~~
--revision (-r) REV
--non-recursive (-N)
--quiet (-q)
--force
--dry-run
--diff3-cmd CMD
--ignore-ancestry
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
~~~
### 例子
将一个分支合并回主干(假定你有一份主干的工作拷贝,分支在修订版本250创建):
~~~
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch
U myproj/tiny.txt
U myproj/thhgttg.txt
U myproj/win.txt
U myproj/flo.txt
~~~
如果你的分支在修订版本23,你希望将主干的修改合并到分支,你可以在你的工作拷贝的分支上这样做:
~~~
$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
U myproj/thhgttg.txt
…
~~~
合并一个单独文件的修改:
~~~
$ cd myproj
$ svn merge -r 30:31 thhgttg.txt
U thhgttg.txt
~~~
';