转载于:http://developer.51cto.com/art/201005/201584.htm
本节介绍SVN子命令SVN merge的使用问题,即子命令SVN merge—应用两组源文件的差别到工作拷贝路径,SVN的拷贝是一种比较有技巧的简单问题,大家在平时的使用过程中有更好的方式希望能够提供出来,供我们大家共同交流讨论。下面是具体的介绍。
名称
子命令SVN merge—应用两组源文件的差别到工作拷贝路径。
概要
svnmerge[-cM|-rN:M]SOURCE[@REV][WCPATH]
svnmergesourceURL1[@N]sourceURL2[@M][WCPATH]
svnmergesourceWCPATH1@NsourceWCPATH2@M[WCPATH]
描述
子命令SVN merge-应用两组源文件的差别到工作拷贝路径的第一种和第二种形式里,源路径(第一种是URL,第二种是工作拷贝路径)用修订版本号N和M指定,这是要比较的两组源文件,如果省略修订版本号,缺省是HEAD。-cM选项与-rN:M等价,其中N=M-1,使用-c-M则相反:-rM:N,其中N=M-1。
第三种形式,SOURCE可以是URL或者工作拷贝项目,与之对应的URL会被使用。在修订版本号N和M的URL定义了要比较的两组源。
WCPATH是接收变化的工作拷贝路径,如果省略WCPATH,会假定缺省值“.”,除非源有相同基本名称与“.”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。
不像svndiff,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。
选项
--revision(-r)REV
--change(-c)REV
--non-recursive(-N)
--quiet(-q)
--force
--dry-run
--diff3-cmdCMD
--extensions(-x)ARG
--ignore-ancestry
--usernameUSER
--passwordPASS
--no-auth-cache
--non-interactive
--config-dirDIR
例子:
我们来看一下子命令SVN merge应用两组源文件的差别到工作拷贝路径的一个具体例子。将一个分支合并回主干(假定你有一份主干的工作拷贝,分支在修订版本250创建):
$svnmerge-r250:HEADhttp://svn.red-bean.com/repos/branches/my-branch
Umyproj/tiny.txt
Umyproj/thhgttg.txt
Umyproj/win.txt
Umyproj/flo.txt
如果你的分支在修订版本23,你希望将主干的修改合并到分支,你可以在你的工作拷贝的分支上这样做:
$svnmerge-r23:30file:///tmp/repos/trunk/vendors
Umyproj/thhgttg.txt…
合并一个单独文件的修改:
$cdmyproj
$svnmerge-r30:31thhgttg.txt
Uthhgttg.txt。子命令SVN merge应用两组源文件的差别到工作拷贝路径介绍完毕