如何防止補丁建立備份檔案?

如何防止補丁建立備份檔案?

我正在編寫一些應用 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

相關內容