Diff

這是創建更新檔的好方法嗎?

  • January 27, 2020

我想從特定gcc分支創建一個更新檔,將其與官方版本進行比較;因此,當我從穩定版本中解壓縮 tarball 時,我可以應用更新檔並獲得與該特定分支中的內容等效的內容。

這是我第一次需要創建更新檔,所以這是我第一次這樣做,我主要關心的是獲得正確的選項和解析,因為我們正在談論一個極其重要的軟體

diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch

這是否足夠並且是最好的方法?

是的,這是創建更新檔的好方法。

簡而言之:

  1. 要為單個文件創建更新檔,您的命令可能看起來像

diff -Naru file_original file_updated > file.patch

在哪裡

  • -N: 將不存在的文件視為空文件
  • -a: 將所有文件視為文本
  • -r: 遞歸比較找到的任何子目錄
  • -u:輸出統一上下文的NUM(預設3)行
  1. 為整個目錄創建更新檔:

diff -crB dir_original dir_updated > dfile.patch

在哪裡

  • -c:輸出 NUM(預設 3)行複制的上下文
  • -r: 遞歸比較任何子目錄
  • -B: 忽略行全為空白的更改

畢竟應用這個更新檔一個可以執行

patch -p1 --dry-run < dfile.patch

其中 switchp指示 patch 去除路徑前綴,以便正確辨識文件。在大多數情況下,它應該是1

--dry-run如果您對螢幕上列印的結果感到滿意,請刪除。

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