我正在跑步diff
,patch
就像这样:
diff --unified --ignore-space-change old.txt new.txt > changed.patch
patch --version-control=none third.txt changed.patch
应该--version-control=none
阻止patch
创建third.txt.orig
文件(它确实这样做了)。
但是,它会创建一个名为third.txt.~1~
相反的文件。
所有帅哥都成功了,SIMPLE_BACKUP_SUFFIX
环境变量为空。
该--posix
选项创建third.orig
文件。
third.rej
如果出现问题,我不介意是否创建文件。
我正在使用带有 GNU 补丁 2.7.6 的 Git Bash。
答案1
通常情况下,修补如果补丁与原始输入文件不完全匹配,则创建备份文件,因为在这种情况下,如果使用 ' 撤消补丁,则原始数据可能无法恢复
patch -R
'(请参阅应用反向补丁)。但是,当符合 POSIX 时,patch 默认情况下不会创建备份文件。请参阅补丁和POSIX标准。这
--backup
(-b) 选项会导致补丁创建备份文件,无论补丁是否与原始输入匹配。这--backup-if-mismatch
选项导致补丁为不匹配的文件创建备份文件;当不符合 POSIX 时,这是默认值。这--no-backup-if-mismatch
选项导致补丁不创建备份文件,即使补丁不匹配;这是符合 POSIX 时的默认值。
(“符合”需要一些解释,但在 The Open Group 基本规范 2018 年第 7 期中并不明显)。