如何防止“补丁”创建末尾带有波浪号的备份文件?

如何防止“补丁”创建末尾带有波浪号的备份文件?

我正在跑步diffpatch就像这样:

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

短:使用--no-backup-if-mismatch

通常情况下,修补如果补丁与原始输入文件不完全匹配,则创建备份文件,因为在这种情况下,如果使用 ' 撤消补丁,则原始数据可能无法恢复patch -R'(请参阅应用反向补丁)。但是,当符合 POSIX 时,patch 默认情况下不会创建备份文件。请参阅补丁和POSIX标准

--backup(-b) 选项会导致补丁创建备份文件,无论补丁是否与原始输入匹配。这--backup-if-mismatch选项导致补丁为不匹配的文件创建备份文件;当不符合 POSIX 时,这是默认值。这--no-backup-if-mismatch选项导致补丁不创建备份文件,即使补丁不匹配;这是符合 POSIX 时的默认值。

(“符合”需要一些解释,但在 The Open Group 基本规范 2018 年第 7 期中并不明显)。

相关内容