本手册描述了 Subversion 1.2。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并参考与您的 Subversion 版本相匹配的手册版本。
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。此 URL 在修订版 N
和 M
处定义要比较的两个来源。
WCPATH
是将接收更改的工作副本路径。如果省略 WCPATH
,则假设默认值为“.
”,除非来源具有相同的基名,并且匹配“.
”内的文件:在这种情况下,差异将应用于该文件。
与 svn diff 不同,合并命令在执行合并操作时会考虑文件的祖先关系。当您将更改从一个分支合并到另一个分支,并且您在一个分支上重命名了一个文件,而在另一个分支上没有重命名时,这一点非常重要。
--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