Androidカーネルの差分をもう少し華麗にゲットするTips
Android Zaurusの日記 「Androidカーネルの差分を華麗にゲットするTips」が素敵だったので、自分ならこうやるかなあ、という方法をご紹介。
引用元では .git ディレクトリの中を直接覗いていますが、ここでは git コマンドを使ってやってみます。最終的にやってることは同じです。
まず、リポジトリを clone します。
$ git clone git://android.git.kernel.org/kernel/common.git $ cd common
clone してきた branch を確認します。
$ git branch * android-2.6.27
android-2.6.27 という branch しかローカルにはありません。
リモートの branch は、git remote show コマンドで確認できます。
$ git remote show origin * remote origin URL: git://android.git.kernel.org/kernel/common.git Remote branch merged with 'git pull' while on branch android-2.6.27 android-2.6.27 Tracked remote branches android-2.6.25 android-2.6.27 android-2.6.29 android-2.6.32 android-goldfish-2.6.27 android-goldfish-2.6.29
android-2.6.32 などの branch があることが分かります。
次に、タグを確認します。タグの確認は、git tag コマンドです。
$ git tag v2.6.11 v2.6.11-tree v2.6.12 v2.6.12-rc2 v2.6.12-rc3 (略) v2.6.31-rc9 v2.6.32 v2.6.32-rc1 v2.6.32-rc2 v2.6.32-rc3 v2.6.32-rc4 v2.6.32-rc5 v2.6.32-rc6 v2.6.32-rc7 v2.6.32-rc8
ローカルとリモートのブランチで diff を取ります。tags/v2.6.32 という指定は v2.6.32 に省略できます。
とりあえず、全体的にどのような変更が入ったのかを確認したいので、--stat オプションで diffstat を表示してみます。
$ git diff --stat v2.6.32..origin/android-2.6.32 Documentation/android.txt | 121 + arch/arm/boot/compressed/head.S | 5 +- arch/arm/boot/compressed/misc.c | 2 +- arch/arm/configs/msm_defconfig | 2 + arch/arm/kernel/debug.S | 2 +- arch/arm/kernel/entry-armv.S | 5 +- arch/arm/kernel/process.c | 73 + arch/arm/kernel/signal.c | 9 + arch/arm/kernel/traps.c | 5 +- arch/arm/mm/cache-v6.S | 17 + block/blk-core.c | 5 +- block/genhd.c | 17 + drivers/Kconfig | 2 + (略)
個人的には、リモートの branch をローカルに持ってくるやり方の方が好きです。リモートに変更が入ったとき、pull すれば追随できるので。
リモートの branch をローカルにもってくるには、 fetch コマンドを使います。
$ git fetch origin android-2.6.32:android-2.6.32 From git://android.git.kernel.org/kernel/common * [new branch] android-2.6.32 -> android-2.6.32 $ git branch * android-2.6.27 android-2.6.32
タグとローカルの branch で diff を取ります。
$ git diff --stat v2.6.32..android-2.6.32 Documentation/android.txt | 121 + arch/arm/boot/compressed/head.S | 5 +- arch/arm/boot/compressed/misc.c | 2 +- arch/arm/configs/msm_defconfig | 2 + arch/arm/kernel/debug.S | 2 +- arch/arm/kernel/entry-armv.S | 5 +- arch/arm/kernel/process.c | 73 + arch/arm/kernel/signal.c | 9 + arch/arm/kernel/traps.c | 5 +- arch/arm/mm/cache-v6.S | 17 + block/blk-core.c | 5 +- block/genhd.c | 17 + drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/base/power/main.c | 45 + drivers/char/Kconfig | 17 + (略)
引用元の blog とほとんど変わんないですね。。.git ディレクトリの中を覗かずに、git コマンドでできるよということが書きたかったのです。
2年ぶりに blog を書きました。これからぼちぼち更新再開できるといいな。