![如何防止補丁建立備份檔案?](https://rvso.com/image/1302215/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E8%A3%9C%E4%B8%81%E5%BB%BA%E7%AB%8B%E5%82%99%E4%BB%BD%E6%AA%94%E6%A1%88%EF%BC%9F.png)
我正在編寫一些應用 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
。