建立patch:
updated dir : src/updateoriginal dir : src/orig# diff -ruN src/orig src/update > my.patch
套用patch:
# cd src/# patch -p1 < my.patch
如果是製作linux kernel的patch
<kernel source>/Documentation/dontdiff 這個檔案可用來套在--exclude-file選項
# diff -ruN --exclude-file src/update/Documentation/dontdiff \
src/orig src/update > my.patch
如何決定-p參數後面的數字?
假設patch檔裡面的檔案路徑如下
diff a/mm/fadvise.c b/mm/fadvise.c
而mm在目前bash所在位置,則上述路徑的 a/ 及 b/ 必須被忽略
patch指令才能夠在目前pwd 找到mm/fadvise.c,也就是要忽略一個 /
因此使用-p1。
$ ls -l
總計 90291
drwxr-xr-x 26 fyodor fyodor 688 2008-04-17 19:12 arch
drwxr-xr-x 2 fyodor fyodor 2008 2008-04-18 12:12 block
-rw-r--r-- 1 fyodor fyodor 18693 2008-04-17 19:11 COPYING
.
.
drwxr-xr-x 2 fyodor fyodor 4624 2008-04-18 12:24 mm
.
.
-rwxr-xr-x 1 fyodor fyodor 33928415 2008-04-18 12:24 vmlinux
-rw-r--r-- 1 fyodor fyodor 57070245 2008-04-18 12:24 vmlinux.o
所以-p要如何使用,取決於目前pwd,以及patch檔的內容
通常kernel patch都是像這個範例的作法
0 comments:
Post a Comment