這是創建補丁的好方法嗎?

這是創建補丁的好方法嗎?

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

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

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

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

答案1

是的,這是創建補丁的好方法。

簡而言之:

  1. 若要為單一檔案建立補丁,您的命令可能如下所示

    diff -Naru file_original file_updated > file.patch

    在哪裡

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

    diff -crB dir_original dir_updated > dfile.patch

    在哪裡

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

畢竟應用這個補丁就可以運行

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

其中 switchp指示 patch 移除路徑前綴,以便正確識別檔案。大多數情況下應該是這樣1

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

答案2

如果你想將最新的 git checkin 與某個穩定版本進行比較,只需去git diff the-stable-version儲存庫中(需要找出描述它的標籤,可能是確切的版本號或某些變體)。git保留項目的完整歷史記錄(通常,有辦法只取得一部分)。是否處於某個不同的開發分支中並不重要the-stable-version(即,開發分叉並且穩定分支得到了一些最後一刻的修復)。

相關內容