you git

昨日の続きでAndroidのJNI周りのソースを見ようと、仕事場からTortoiseGitを起動したのだが、cloneを含めて一切のコマンドが届かない。

Tortoiseだと状況が解りにくいので、コマンドで試してみよう。

>git clone git://android.git.kernel.org/platform/external/webkit.git
android.git.kernel.org[0: 149.20.20.141]: errno=No error
android.git.kernel.org[1: 199.6.1.176]: errno=No error
android.git.kernel.org[2: 204.152.191.45]: errno=No error
android.git.kernel.org[3: 130.239.17.12]: errno=No error
fatal: unable to connect a socket (No error)

やはりだめか。
ならばHTTPプロトコルならどうだろう。(HTTPは効率が悪いので、全てのサーバがサポートしているとは限らない)

>git clone http://android.git.kernel.org/platform/external/webkit.git

error: The requested URL returned error: 407 while accessing http://android.git.kernel.org/platform/external/webkit.git/info/refs

fatal: HTTP request failed

これは想定内。認証が必要なプロキシが経路に入るからだ。
なので、コマンドプロンプトで認証情報+プロキシ情報を環境変数で設定、かつHTTPでアクセスしてみる

>set HTTP_PROXY=http://KazzUser:KazzPassword@proxy.hoge.jp:8080
>git clone http://android.git.kernel.org/platform/external/webkit.git
Initialized empty Git repository in E:/android/webkit/.git/
error: The requested URL returned error: 407 while accessing http://android.git.kernel.org/platform/external/webkit.git/info/refs

fatal: HTTP request failed

やはりだめだ。これは以前から何度も書いたがプロキシの認証部分がNTLM認証をサポートしていないため。
最後の手段として、AndroidのEmulatorで設定したのと同様にntlmapsでNTLM認証を肩替わりさせるためにntlmapsを起動し、環境変数HTTP_PROXYはntlmaps側を指すように設定。

>set HTTP_PROXY=http://KazzUser:KazzPassword@ローカルPC名又はアドレス:5865

>git clone http://android.git.kernel.org/platform/external/webkit.git
Initialized empty Git repository in E:/android/sdk_source/platform.external.webkit/.git/
Checking out files: 100% (9061/9061), done.

これでリポジトリのクローンが出来た(gitの全てのコマンドが通るかは確認していない)

あと、これはまた別の問題なのだが、TortoiseGitのMLgroupであるTortoise Group Dev だが、仕事場からアクセスするとアダルトコンテンツ扱いになるようで、フィルタの網にかかってしまい見ることができない。

語の組み合わせ("Tortoise" + "Git" )がやばいのか? (笑