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