我可以在“正常”差异/补丁文件中写入注释吗?

我可以在“正常”差异/补丁文件中写入注释吗?

我曾经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流一部分的注释语法吗?我不能。

更改应在其他地方记录。

相关内容