本手册描述了 Subversion 1.4。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并参考适合您 Subversion 版本的书籍。

名称

svn merge — 将两个源之间的差异应用到工作副本路径。

语法

svn merge [-c M | -r N:M] SOURCE[@REV] [WCPATH]
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]

描述

在第一和第二种形式中,源路径(第一种形式中的 URL,第二种形式中的工作副本路径)在修订版 NM 中指定。这是要比较的两个源。如果省略,修订版默认为 HEAD

-c M 选项等效于 -r N:M,其中 N = M-1。使用 -c -M 做相反的事情:-r M:N,其中 N = M-1

在第三种形式中,SOURCE 可以是 URL 或工作副本项,在这种情况下,将使用相应的 URL。此 URL 在修订版 NM 中定义了要比较的两个源。

WCPATH 是将接收更改的工作副本路径。如果省略 WCPATH,则假设默认值为“.”,除非源具有相同的基名,这些基名与“.”中的文件匹配:在这种情况下,差异将应用于该文件。

svn diff 不同,合并命令在执行合并操作时会考虑文件的祖先关系。当您将一个分支的更改合并到另一个分支时,这非常重要,而您在一个分支上重命名了一个文件,但在另一个分支上没有重命名。

其他名称

更改

工作副本

访问存储库

仅当使用 URL 时

选项

--revision (-r) REV
--change (-c) REV
--non-recursive (-N)
--quiet (-q)
--force
--dry-run
--diff3-cmd CMD
--extensions (-x) ARG
--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