使用 svk 建立開發分支
2004 年在 Asia BSD Conference 就聽過 clkao 介紹 svk,也在一些專案用過,不過後來都不了了之,總是卡在技術問題上。今年二月份為了維護 [
PXA27x Linux] 計畫,又使用了 svk。在之前的 blog [
Qemu patches] 可看到系統模擬所做了修改,但事實上那還是一部分,更別考慮到 qemu 的活躍發展所導致 API changes,還好,我們有 svk。
參考 [
Using SVK As A Repository Mirroring System] 一文提供了簡要的 svk 用法,可輕鬆的維護發展分支,[
PXA27x Linux] 計畫的子項目 PXAemu 就是以 qemu 為基礎的設計,要保持跟 upstream 同步發展,可以很簡單,以下是運作的輸出畫面:
jserv@work:~/virt/pxaemu$ svk pull
svk: $ cvs login # for 'anonymous'
CVS password:
svk: $ cvs ... checkout qemu # establish local CVS workspace
svk: appending required ChangeSets, StringEdit filters
svk: running cvs log qemu
svk: found 587 rev(s) with 1073 tag applications
svk: no revisions to write
svk: sorting by change_id
svk: committed 0 revisions
自動合併(2812, 2814)/mirrors/qemu/trunk 到 /projects/pxaemu(源頭為 /mirrors/qemu/trunk:2812)
U target-sparc/op.c
U target-sparc/cpu.h
U target-sparc/translate.c
新的合併歷史紀錄:b2c12b54-451a-302e-ae34-065fcc141066:qemu/.../trunk:2814
已送交編號 2815 的更動。
同步化 //projects/pxaemu(/projects/pxaemu)於 /home/jserv/virt/pxaemu 到第 2815 版。
target-sparc - 略過
target-sparc/op.c - 略過
target-sparc/cpu.h - 略過
target-sparc/translate.c - 略過
在 Debian 中需要安裝兩個套件:[
svk] 與 [
libvcp-dest-svk-perl]。如上所示,這就是智慧型的 merge,因為 PXAemu 本身已移除 ARM 以外的 target,所以即便 upstream 的 qemu 有其他架構的更新,也會自動忽略。比較麻煩的是 [
libvcp-dest-svk-perl] 運作效能不高,在 SVK 2.0.0 已移除支援,所以沒辦法作 CVS mirror。
在 OSDC.tw 2007,又聽了一場 clkao 介紹的 svk,看來有了極大的改觀,而且 SVK 2.0 應該有機會把 CVS mirror 的功能加回去。
由 jserv 發表於 April 23, 2007 09:32 AM