kernel patch tool

最近在…把一個某某某學長改過的 kernel 整合成新的版本,在資訊不足的情況下..需要先準備好幾樣的東西,

  • 當初他改完的 kernel
  • 他修改前的版本
  • 新的要合併的 kernel

  例如原本他拿 2.6.31 來改,我就要準備一個原始的版本,用來比較他修改了哪些地方,然後我要 patch 到哪裡,例如 ubuntu 10.4 ,那我就找 10.4 的 kernel source。如果有用 diff 做出來的 patch 也不錯,只是我不知道怎麼用,因為 patch 是那兩個版本的差異,但是我是別的版本直接合進去應該會炸掉吧。當初我是想要有沒有一步一步 patch 的工具,只是好像沒有。
準備好這些裝備以後就能整裝上路了…先找一個良好的 diff 工具
  • meld(L)
  • kdiff3(L)
  • Beyond Compare(W,L)
  • windiff(W)
  比較起來最後我用的是 meld ,沒什麼原因…在 fedora 15 裝起來按一按就能用了,在 windows 上面好像是 bcompare 比較優~只是我在 linux 上面裝不起來,而且似乎是商業軟體。
  最重要的功能是他可以三方比對,我是沒用過其他的,只是一用就上癮了…如下圖新建一個比對以後選擇三個資料夾,他就會耗費一段時間做掃瞄,聽說其他軟體可以即時的比對而不耗費很長的時間掃瞄。
  但等待總是美好的,當你等完以後你就會清楚看見三個版本的程式有哪些差異,紅色代表有差異綠色代表,新增的檔案或資料夾,節著就可以透過右鍵開啟選單,可以把檔案輕鬆的同步到左右版本,或者進行手動修改。
  預設會使用 gedit 來開啟編輯器似乎可以替換,只是做簡單的 patch 也已堪用了~如上圖他會把差異的部份標示出來,很清楚的可以知道變更的地方,甚至不同行數的程式似乎都能追蹤~但是差異太大顯示的樣子就會有些不方便了~只是也理所當然~
   軟體中的版本之間的箭頭是可以按的~我覺得超貼心的,很多情況連複製貼上都不用,只要按一下就能把左邊的同步到右邊,比較困難的情況在手動複製貼上整理。
  透過這個方式在幾小時內就把原本無法預估時程的 patch 整理完了。
  另外我在開發的 web 系統也有許多分支維護的困難,透過這個軟體也讓得以讓兩個分支可以穩定的更新共用的部份,但是還是沒找到良好的方式透過 git 管理。感覺是需要維護一個共同核心分支,在透過分支出不同版本在維護其特別的差異,在定期的 merge 共同分支部份。只是需要良好的溝通才能讓開發者知道要去哪個分支修改,或者要想一個方式讓大家不容易做錯…或者改錯還有機會做狀態回覆。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *