2011-04-11 138 views
12

我知道要爲現有文件補丁很簡單:如何爲新文件創建補丁?

diff -aru oldFile newFile 2>&1 | tee myPatch.patch

但是做什麼,如果我想創建一個補丁一個完全新的文件?假設我的文件位於名爲TestDir的文件夾中。此前TestDir沒有名爲entirelyNewfile.c的文件,但現在它具有相同的功能。

如何爲entirelyNewfile.c創建補丁?這個想法是,該補丁應該適當地應用於規格並生成RPM版本。用BUILD dir有這個新文件。

只是爲了增加:如果我試圖在兩個目錄之間進行差異化,一個有新文件,另一個缺少相同的,創建補丁,它會生成一個錯誤說該文件只存在於一個文件夾

回答

14

-N加到diff的論點。

+0

非常感謝。但如何編輯這些? --- Olddir/testUsecase2.cc 1970-01-01 05:30:00.000000000 +0530 +++ NewDir/testUsecase2.cc 2011-04-11 20:39:56.000000000 +0530 – kingsmasher1 2011-04-11 15:39:38

+0

如果這些格式不正確,通常這些在RPM構建過程中拒絕文件。 – kingsmasher1 2011-04-11 15:40:49

0

我所知道的最簡單的方法是將所有文件放在版本控制之下(如果它們還沒有的話)。我喜歡Git的,但類似的東西可以在任何其他版本控制系統來實現:

git init 
git add . 
git commit -m "initial state" 
<do your edits here> 
git add . 
git commit -m "new state" 
git diff HEAD^1 
+0

但是,您將如何從那裏創建RPM構建? RPM構建需要將單個補丁添加到SPEC文件。 – kingsmasher1 2011-04-11 15:50:48

+0

「git diff」步驟將生成一個可以保存到文件中的補丁,然後將其作爲源文件添加到RPM .spec文件中。 – jcollie 2011-04-11 16:15:50

4
diff /dev/null <newfile> 

將爲您的newfile補丁。