2010年10月22日金曜日

Mercurialでパッチの管理

分散バージョン管理システムのMercurialでパッチの管理を行うときは、mq を使う。
使い方のメモ

拡張を登録する

~/.hgrc に拡張機能を登録する。

[extensios]
mq=

元のソースファイルを展開し、 mq を初期化する。
hg init
hg commit --addremove -m "initial commit"
hg qinit
編集する前にパッチの名前をつける
hg qnew -m "説明文" pathc_no_namae

編集後パッチを作成
hg qrefresh


パッチファイルがある場合は

hg qimport patch_file

ちなみに今回はカーネルにvserverとaufsのパッチを当てた。

hg qimport patch-2.6.35.4
hg qimport patch-2.6.35.2-vs2.3.0.36.31.diff
hg qimport aufs2-base.patch
hg qimport aufs2-kbuild.patch
hg qimport aufs2-standalone.patch

hg qnew aufs2-files
include/linux/Kbuild に

header-y = aufs_type.h

を追加。README にはコピーするように書いてあったが、コピーするのはaufs_type.hだけ。

aufs2-standalone/include/linux/aufs_type.h , aufs2-standalone/fs, aufs2-standalone/Documentation をコピー

リポジトリに追加

hg add .
パッチをリフレッシュ

hg qrefresh


.hg/patchesの中身
$ ls .hg/patches/ -1
aufs2-base.patch
aufs2-files
aufs2-kbuild.patch
aufs2-standalone.patch
patch-2.6.35.2-vs2.3.0.36.31.diff
patch-2.6.35.4
series
status


aufsについては、クローンを作って、READMEを読む。

git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs2-standalone.git

0 件のコメント: