如何阻止补丁创建备份文件?

如何阻止补丁创建备份文件?

我正在编写一些将应用 patch(1) 程序的代码,我想完全阻止它创建备份文件。也就是说,foo.orig当它无法更新特定文件(在这种情况下它会创建一个foo.rej文件)或成功更新文件但存在一些模糊性时,我不希望它创建文件,这两种情况通常都会发生。这似乎说起来容易做起来难。

基本情况:我对 Debian 源目录运行“patch”,但无法更新文件debian/changelog。patch 会创建一个文件debian/changelog.orig(这是我试图避免的)。

文档中提到了一个--no-backup-if-mismatch开关,这似乎正是我所需要的。但是当我添加它时,仍然会创建备份文件,只是现在它被称为debian/changelog.~1~

文档还说,当--posix存在开关时,不会进行备份。当我使用此开关代替时--no-backup-if-mismatch,仍会创建备份文件,但使用原始.orig后缀。

我发现的唯一解决方法是使用-B/--prefix开关将备份直接写入我选择的目录。但这似乎是一种丑陋的黑客行为。有没有更干净的方法来阻止备份?

答案1

显然-B/--prefix这是唯一的出路。

答案2

根据(diffutils)备份--no-backup-if-mismatch做你想做的事。

答案3

考虑使用未记录的--version-control none选项。该选项是针对 FreeBSD 变体的patch

相关内容