本文档旨在描述 Subversion 1.1。如果您运行的是更新版本的 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 在修订版 NM 中指定。这是要比较的两个源。如果省略,修订版默认为HEAD

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

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

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

备用名称

更改

工作副本

访问存储库

仅当使用 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