2007/09/14

[工作點滴] patch file in Linux

建立patch檔案使用的命令
diff -Naur 舊目錄或檔案 新目錄或檔案 > patch檔案



如何使用patch對於一個patch檔案,有兩種常用使用方法:
1. cat new-patch | patch -p0
2. patch -p0 < new-patch



patch命令裡面的層數
參數-p來指定從第幾層開始比較。比如有一個patch檔案的開頭是:
--- old/modules/network JAN 26 12:11:36 2002
+++ new/modules/network SEP 20 20:07:38 2003
如果使用參數-p0,就表示從當前目錄,一直找到network的目錄。
如果使用參數-p1,就代表忽略第一層,表示從當前目錄找modules目錄,一直找到network目錄。
這樣會忽略掉patch檔案頭提到的old及new目錄。


patch的結構:
分別由---/+++開頭的兩行,表示要patch的檔案。
一個patch檔案中的多個patch
一個patch檔案中可能包含以---/+++開頭的很多區塊,
每一區塊用來形成一個patch。
因此在一個patch檔案中可以包含好多個patch。
區塊是patch中要修改的地方,通常由不用修改的東西開始和結束。
他們只是用來表示要修改的位置。
而區塊通常以@@開始,
結束於另一個區塊的開始或者一個新的patch head。
區塊的縮進,區塊會縮進一列,
而這一列是用來表示這一行是要增加還是要刪除的。
區塊的第一列
+號表示這一行是要加上的。
-號表示這一行是要刪除的。


沒有留言: