patch 與 diff 的簡單應用

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

patch 與 diff 的簡單應用

文章訪客 » 週五 8月 31, 2007 11:29 pm

小弟功力很弱,所以沒辦法寫太多好用的…以下內容懇請方家斧正。

1. 製作 patch 檔
代碼: 選擇全部
diff -Nur foobar-1.9.9 foobar-2.0.0 > foobar_1.9.9_to_2.0.0.diff

這樣就會製作出 foobar 這個軟體從 1.9.9 到 2.0.0 的所有變化,存成檔案。
寄給開發者之前還可以看看 patch 裡是否有多餘無用的資訊,例如 tab 變成 space、多了幾行空白之類的…總之 patch 越乾淨越好,不要多改一些有的沒的。
乾淨的 patch 會讓開發者更容易接受。

2. 打補丁(apply patch)
代碼: 選擇全部
cd foobar-1.9.9
patch -p1 < PATH/TO/THE/PATCH/FILE/foobar_1.9.9_to_2.0.0.diff

這樣就會把 foobar-1.9.9 變成 foobar-2.0.0

3. 大量檔案改變編碼
你有大量 Big5 檔案想換成 UTF-8 嗎?
代碼: 選擇全部
mkdir foobar.utf8
diff -Nur foobar.utf8 foobar.big5 > foobar_big5.diff
iconv -f CP950 -t UTF-8 -c foobar_big5.diff > foobar_utf8.diff
cd foobar.utf8
patch -p1 < ../foobar_utf8.diff

這樣就會把 foobar.big5 裡所有的檔案(含子目錄裡的檔案、子目錄的子目錄裡的檔案…)
轉換成 UTF-8,且所有目錄結構完全不變。

同樣道理,這個技巧可以用於簡繁轉換、dos2unix 文件格式轉換、各種文件格式互轉…
訪客
 

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客