我曾经diff
制作过补丁文件。diff old.txt new.txt
:
1c1
< Lorem ipsum dolor sit amet, consectetur adipiscing
---
> The quick brown fox jumps over the lazy dog.
输出采用默认的“正常差异”格式。
我可以在这个补丁文件中写注释吗?如果是这样,补丁文件是否可以合理移植?
答案1
patch 会忽略看起来不像 diff-output 的行,直到找到与该语法匹配的块。这是相当可移植的:现有的实现就是这样做的。我构建的补丁(例如,使用diff-patch
)对于 ncurses 和 xterm 都有一个序言给出差异统计,在行前添加“#”以使其明确,例如,引用一:
# ncurses 6.2 - patch 20200301 - Thomas E. Dickey
#
# ------------------------------------------------------------------------------
#
# Ncurses 6.2 is at
# ftp.gnu.org:/pub/gnu
#
# Patches for ncurses 6.2 can be found at
# ftp://ftp.invisible-island.net/ncurses/6.2
# http://invisible-mirror.net/archives/ncurses/6.2
#
# ------------------------------------------------------------------------------
# ftp://ftp.invisible-island.net/ncurses/6.2/ncurses-6.2-20200301.patch.gz
# patch by Thomas E. Dickey <[email protected]>
# created Mon Mar 2 23:18:56 UTC 2020
# ------------------------------------------------------------------------------
# NEWS | 8 +++++++-
# VERSION | 2 +-
# dist.mk | 4 ++--
# ncurses/base/lib_bkgd.c | 12 +++++++++++-
# package/debian-mingw/changelog | 4 ++--
# package/debian-mingw64/changelog | 4 ++--
# package/debian/changelog | 4 ++--
# package/mingw-ncurses.nsi | 4 ++--
# package/mingw-ncurses.spec | 2 +-
# package/ncurses.spec | 2 +-
# package/ncursest.spec | 2 +-
# 11 files changed, 32 insertions(+), 16 deletions(-)
# ------------------------------------------------------------------------------
Index: NEWS
Prereq: 1.3455
--- ncurses-6.2-20200229+/NEWS 2020-02-29 23:15:52.000000000 +0000
+++ ncurses-6.2-20200301/NEWS 2020-03-02 01:55:08.000000000 +0000
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
另一方面,有人可以构建一个新的补丁程序,在这种情况下会出现错误。鉴于该程序已有三十年的历史,可移植性的缺乏将反映在“新”程序上,而不是它目前的使用方式上。
答案2
不。如果您打算将其提供diff
给程序,例如,则不需要patch
。
你能想到一种永远不会成为diff
/patch
流一部分的注释语法吗?我不能。
更改应在其他地方记录。