2013-10-17 47 views
0

我正嘗試使用diff工具創建修補程序文件,但遇到問題。 我已創建了一個名爲目錄中,並把原來的文件到它:如何處理此修補程序問題

  • A/original_file.c

我已經創建了一個名爲B以外的目錄,並把同樣的文件與它修改的內容。

  • B/original_file.c

我已經複製從互聯網的B/original_file.c文件的內容並把它放入一些文本編輯器。

發出命令diff -Naur a b > patch_file.patch後,我可以看到patch_file.patch已生成,並且它有一些不需要的更改(它與縮進有關)。

例如:

return msg (MSG_NOTIFY, &msg, senr, 
-     sizeof (struct msgotify)); 
+     sizeof (struct msgotify)); 

你可以看到有改變相關的壓痕,其中sizeof (struct msgotify))由壓痕的相同sizeof (struct msgotify))而是一個基礎這是我們不想要的東西所取代。

有誰能讓我知道如何擺脫這個問題??

回答

1

如果您不關心間距的變化,請將-b添加到生成修補程序的diff命令中。

+0

Thansk @Jonathan,所以我的命令會diff - 是否-b a b?我的新補丁文件將有b/original_file.c的indendation? –

+0

是的,你可以使用'diff -Naur -b'或者將它與其他標誌'diff -Naurb'結合使用。由於修補程序文件不包含任何只有間距不同的行,因此會發生什麼情況取決於您如何應用修補程序。由於該補丁將'a'轉換爲'b',因此如果將補丁應用於'a'中的文件,則會得到包含與'a'相同間距的行的結果,因爲您沒有支付注意間距的差異。如果你在'b'文件中反向應用了這個補丁,你可以在'a'中得到這個文件,但是文件'b'的間距爲那些沒有明確改變的行。 –

+0

你建議的選項對我來說工作得很好,我只能看到修改後的補丁文件,但是當應用這個補丁文件時,我得到的錯誤並不是早些時候出現的。 –