Androidカーネルの差分を華麗にゲットするTips

まずAndroidカーネルの汎用型をclone。

$ git clone git://android.git.kernel.org/kernel/common.git
$ cd common

Androidカーネルはremotes/originにブランチ。

$  ls .git/refs/remotes/origin/
HEAD            android-2.6.29           android-goldfish-2.6.29
android-2.6.25  android-2.6.32
android-2.6.27  android-goldfish-2.6.27

一方、vanillaはタグ付けされている。

$ ls .git/refs/tags/
v2.6.11       v2.6.16      v2.6.20-rc1  v2.6.23-rc7  v2.6.26-rc8  v2.6.29-rc8
v2.6.11-tree  v2.6.16-rc1  v2.6.20-rc2  v2.6.23-rc8  v2.6.26-rc9  v2.6.30
(ry

で、gitがbranchとtag間でもdiffがとれることを知った。

$ git diff tags/v2.6.32..origin/android-2.6.32
diff --git a/Documentation/android.txt b/Documentation/android.txt
new file mode 100644
index 0000000..72a62af
 --- /dev/null
 +++ b/Documentation/android.txt
 @@ -0,0 +1,121 @@
(ry

なので。vanillaとandroidの差分を華麗にゲットするには、

$ GIT_PAGER=cat git diff tags/v2.6.32..origin/android-2.6.32 \
   > ../diff-vanilla-android-2.6.32.patch

パッチをだら見したいときは、

$ gitk tags/v2.6.32..origin/android-2.6.32

追記 2/21
さらに華麗にゲットするには。
http://d.hatena.ne.jp/kotak/20100220