Diff
這是創建更新檔的好方法嗎?
我想從特定
gcc
分支創建一個更新檔,將其與官方版本進行比較;因此,當我從穩定版本中解壓縮 tarball 時,我可以應用更新檔並獲得與該特定分支中的內容等效的內容。這是我第一次需要創建更新檔,所以這是我第一次這樣做,我主要關心的是獲得正確的選項和解析,因為我們正在談論一個極其重要的軟體
diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch
這是否足夠並且是最好的方法?
是的,這是創建更新檔的好方法。
簡而言之:
- 要為單個文件創建更新檔,您的命令可能看起來像
diff -Naru file_original file_updated > file.patch
在哪裡
-N
: 將不存在的文件視為空文件-a
: 將所有文件視為文本-r
: 遞歸比較找到的任何子目錄-u
:輸出統一上下文的NUM(預設3)行
- 為整個目錄創建更新檔:
diff -crB dir_original dir_updated > dfile.patch
在哪裡
-c
:輸出 NUM(預設 3)行複制的上下文-r
: 遞歸比較任何子目錄-B
: 忽略行全為空白的更改畢竟應用這個更新檔一個可以執行
patch -p1 --dry-run < dfile.patch
其中 switch
p
指示 patch 去除路徑前綴,以便正確辨識文件。在大多數情況下,它應該是1
。
--dry-run
如果您對螢幕上列印的結果感到滿意,請刪除。