Diff

如何將新文件包含到更新檔中

  • April 26, 2012

我嘗試按照此處介紹的方式製作更新檔。

假設我有兩個目錄pp1(modified version),我使用以下命令pp0(clean version)創建一個更新檔文件:pp0.patch``diff

diff -crB pp0 pp1 > pp0.patch

問題是如果只有 pp1 中的文件,它將不會包含在更新檔中。如何解決它?

UPDATE :

我先切換到pp0的目錄,測試更新檔是否成功

 patch --dry-run -p1 -i /path-to-pp0.patch

雖然我已經添加--new-filediff命令中,但pp1結果中沒有列出

更新

我不小心修補了錯誤的文件,所以

 diff -crb --new-file pp1 pp0 > pp0.patch

要麼

 diff -crNb pp1 pp0 > pp0.patch

會做

您應該可以使用--new-fileswitch 來執行此操作。取自diff 手冊頁

--new-file
         In directory comparison, if a file is found in only  one  direc-
         tory, treat it as present but empty in the other directory.

嘗試這個:

diff -crB --new-file pp0 pp1 > pp0.patch

直接的答案:diff -N正如pootzko 所解釋的那樣。你會發現很多更新檔都是由diff -urN.

什麼可以讓你的生活更美好:開始使用版本控制工具。如果您不知道,請從三個主要的分佈式修訂控制系統之一開始,BazaarGitMercurial。簽入乾淨版本,工作,根據需要多次簽入您的工作,並向您的版本控制系統詢問乾淨版本和您的工作之間的差異。

引用自:https://unix.stackexchange.com/questions/37287