任意のversionのandroid kernel sourceを取得する

git cloneで-bが使えたとばっかり思ってたのだけど、ダメみたい。
前にやったときは出来たような気がしたのだけど、気のせいか。

86mother:~/kernel# git clone git://android.git.kernel.org/kernel/common.git -b v2.6.32
error: unknown switch `b'
usage: git-clone [options] [--] <repo> [<dir>]

    -q, --quiet           be quiet
    -n, --no-checkout     don't create a checkout
    --bare                create a bare repository
    --naked               create a bare repository
    -l, --local           to clone from a local repository
    --no-hardlinks        don't use local hardlinks, always copy
    -s, --shared          setup as shared repository
    --template <path>     path the template repository
    --reference <repo>    reference repository
    -o, --origin <branch>
                          use <branch> instead or 'origin' to track upstream
    -u, --upload-pack <path>
                          path to git-upload-pack on the remote
    --depth <depth>       create a shallow clone of that depth

筋としては、cloneしてからbranckをcheckoutするのかな?

86mother:~# git --version
git version 1.5.6.5

恐竜先生のところでは-bで動いているみたい。
http://twitter.com/#!/androidzaurus/status/19212828443418624

mkdir tmp && cd tmp && git clone あのURI -b archvie/android-2.6.32で問題ないけどなぁ。

gitは、1.7.1だそう。
試してみたけどダメだった。

86mother:~# mkdir tmp && cd tmp && git clone git://android.git.kernel.org/kernel/common.git -b archvie/android-2.6.32
error: unknown switch `b'

恐竜先生に調べてもらったら、1.7.1のヘルプには-bがあるのだそう。
@cat_kaotaroさんとこは1.5.4.3でもダメ。
バージョンの問題ね。

86mother:~/kernel# git clone git://android.git.kernel.org/kernel/common.git   
Initialized empty Git repository in /root/kernel/common/.git/
remote: Counting objects: 1738615, done.
remote: Compressing objects: 100% (277431/277431), done.
remote: Total 1738615 (delta 1455638), reused 1725151 (delta 1446253)
Receiving objects: 100% (1738615/1738615), 345.87 MiB | 654 KiB/s, done.
Resolving deltas: 100% (1455638/1455638), done.
Checking out files: 100% (34503/34503), done.
86mother:~/kernel# cd common/
86mother:~/kernel/common# git branch
* android-2.6.36

だめだな。
素で取って来ると、最新のしかブランチない。


lennyには、今より新しいgitは標準ではないようだ。


このままgitを上げずに出来ないものかな?

86mother:~/kernel# git clone git://android.git.kernel.org/kernel/common.git archive/android-2.6.32 
Initialized empty Git repository in /root/kernel/archive/android-2.6.32/.git/
remote: Counting objects: 1738615, done.
remote: Compressing objects: 100% (277431/277431), done.
remote: Total 1738615 (delta 1455636), reused 1725151 (delta 1446253)
Receiving objects: 100% (1738615/1738615), 345.87 MiB | 2133 KiB/s, done.
Resolving deltas: 100% (1455636/1455636), done.
Checking out files: 100% (34503/34503), done.
86mother:~/kernel# cd archive/android-2.6.32/
86mother:~/kernel/archive/android-2.6.32# git branch* android-2.6.36

恐竜先生のコメントと同じ結果。bなしでも変わらずか。


gitを上げるしかなさそう。
backportsのは1.7.1になっているようだ。

86mother:~/kernel# vi /etc/apt/sources.list
追記
deb http://www.jp.backports.org lenny-backports main contrib non-free
deb-src http://www.jp.backports.org lenny-backports main contrib non-free
86mother:~/kernel# apt-get update
86mother:~/kernel# apt-get install debian-backports-keyring
86mother:~/kernel# apt-get -t lenny-backports install git-core git
86mother:~/kernel# git --version
git version 1.7.1
86mother:~/kernel# git clone -h
usage: git clone [options] [--] <repo> [<dir>]

    -v, --verbose         be more verbose
    -q, --quiet           be more quiet
    --progress            force progress reporting
    -n, --no-checkout     don't create a checkout
    --bare                create a bare repository
    --mirror              create a mirror repository (implies bare)
    -l, --local           to clone from a local repository
    --no-hardlinks        don't use local hardlinks, always copy
    -s, --shared          setup as shared repository
    --recursive           initialize submodules in the clone
    --template <path>     path the template repository
    --reference <repo>    reference repository
    -o, --origin <branch>
                          use <branch> instead of 'origin' to track upstream
    -b, --branch <branch>
                          checkout <branch> instead of the remote's HEAD
    -u, --upload-pack <path>
                          path to git-upload-pack on the remote
    --depth <depth>       create a shallow clone of that depth

ちゃんと-bある。

86mother:~/kernel# git clone git://android.git.kernel.org/kernel/common.git -b archive/android-2.6.32 
Initialized empty Git repository in /root/kernel/common/.git/
remote: Counting objects: 1728031, done.
remote: Compressing objects: 100% (276209/276209), done.
Receiving objects: 100% (1728031/1728031), 341.93 MiB | 1.20 MiB/s, done.
remote: Total 1728031 (delta 1446700), reused 1714188 (delta 1437071)
Resolving deltas: 100% (1446700/1446700), done.
86mother:~/kernel# cd common/
86mother:~/kernel/common# git branch
* archive/android-2.6.32

取れた。


Ubuntu10.04なら、最新は1.7.0.4-1ubuntu0.1。
https://launchpad.net/ubuntu/lucid/+package/git-core
ここでgit 1.7.3.4のパッケージ作ってる人がいる。
http://blog.avirtualhome.com/git-packages-for-ubuntu/
8.04だと野良ビルドしかないかな...


恐竜先生からコメントでの報告。
HEADからの展開ができたそう。
でも、もうgit上げちゃったから-bが効くのか確認出来ない...
戻す。

86mother:~/kernel# apt-get remove --purge git-core git
86mother:~/kernel# apt-get install git-core git
86mother:~/kernel# git --version
git version 1.5.6.5
86mother:~/kernel# git clone git://android.git.kernel.org/kernel/common.git   
Initialized empty Git repository in /root/kernel/common/.git/
remote: Counting objects: 1738615, done.
remote: Compressing objects: 100% (277431/277431), done.
remote: Total 1738615 (delta 1455641), reused 1725150 (delta 1446253)
Receiving objects: 100% (1738615/1738615), 345.86 MiB | 2104 KiB/s, done.
Resolving deltas: 100% (1455641/1455641), done.
Checking out files: 100% (34503/34503), done.
86mother:~/kernel# cd common/
86mother:~/kernel/common# git branch -a
* android-2.6.36
  origin/HEAD
  origin/android-2.6.35
  origin/android-2.6.36
  origin/archive/android-2.6.25
  origin/archive/android-2.6.27
  origin/archive/android-2.6.29
  origin/archive/android-2.6.32
  origin/archive/android-gldfish-2.6.29
  origin/archive/android-goldfish-2.6.27
86mother:~/kernel/common# git checkout -b v2.6.32 origin/archive/android-2.6.32
Checking out files: 100% (21221/21221), done.
Branch v2.6.32 set up to track remote branch refs/remotes/origin/archive/android-2.6.32.
Switched to a new branch "v2.6.32"
86mother:~/kernel/common# git branch                                           
  android-2.6.36
* v2.6.32
86mother:~/kernel/common# head Makefile -n6
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 32
EXTRAVERSION = .9
NAME = Man-Eating Seals of Antiquity

確かにgit古くてもHEADからできた〜。