patch: 在工作副本应用一个补丁。
用法:
patch
PATCHFILE [PATCHFILE]
将 PATCHFILE 中的统一差异格式补丁应用于工作副本
WCPATH。如果省略 WCPATH,则假定为
“.”。
可以使用 “svn ”
命令或第三方差异工具来生成适用于工作副本的统一差异格式补丁。除了由
“diffsvn ” 生成的 Subversion
属性差异外,diffPATCHFILE 文件中的的任何非统一差异格式内容都将被忽略。
补丁中列出的修改将被使用或拒绝。 如果一个修改在其精确的行偏移处不匹配,但却在其它位置找到了与其周围所提供的上下文行相匹配的内容, 则可以在文件中这个更前或更后的位置使用修改。
修改也可能被模糊地使用,这意味着匹配修改时会忽略一行或多行上下文。
如果一个修改找不到可匹配的上下文,则该修改会发生冲突,并将写入扩展名为 .svnpatch.rej 的拒绝文件。
对于每个使用补丁的文件,都将被输出一行,并使用一个字符来报告执行的操作。这些字符具有以下含义:
A 添加D 删除U 更新C 冲突G 合并 (包含本地未提交的修改)所使用的修改如果位置有偏差或者使用了模糊应用,则输出的行会以 “>” 开头。应该仔细检查这样的修改。
如果使用补丁的过程删除了一个文件的所有内容,则这个文件将被标记为删除的文件。
如果使用补丁的过程创建了一个新文件,则这个文件将被标记为添加的文件。可以使用
“svn ” 命令撤消您不希望的删除和添加。revert”
提示:
如果补丁文件是使用 Subversion 创建的,它将包含该补丁明确可用的版本号 N(可查找类似
“--- foo/bar.txt (revision N)” 这样的行)。为了避免被拒绝,请首先使用
“svn ” 命令更新工作副本至版本 update -r
NN,再应用补丁,然后再更新回
HEAD 版本。这样,可以以交互的方式来解决冲突。
| 有效选项: | ||
|---|---|---|
| -q [--quiet] | : | 不输出信息,或只输出概要信息 |
| --dry-run | : | 尝试执行但不做任何修改 |
--strip ARG |
: | 对补丁文件中解析的路径,将剥离的前导路径组件数量。 默认为 --strip ,将保留路径不做修改。--strip 会将路径
‘doc/fudge/crunchy.html’ 改为 ‘fudge/crunchy.html’。--strip 将仅保留
‘crunchy.html’。在所有平台上,预期的路径组件分隔符均为 ‘ /’。前导
“/” 将被计作一个路径组成部分 |
| --reverse-diff | : | 反向使用同一差异格式 |
| --ignore-whitespace | : | 模版匹配时忽略空白 |