«前の日記(2012年1月29日(日)) 最新 次の日記(2012年2月4日(土))» 編集

徒然日記


2012年2月2日(木) [長年日記]

古いgitでgithubをcloneできないお話

結論:古い(1.5.2.3で確認した)gitではgithubのrepoをcloneできない

proxyでしかhttp/httpsが外に出ていけない環境でgithubのrepoをcloneできないなー。と思っていたのだけど、ぐぐるとhttp(s)なrepoならgit config --global http.proxyを設定すればproxy経由で出ていける、と書いてある。

でもcloneできない…

うーむ。と思い、tcpdumpとかして追ってみると最近のgitはcloneするときに↓こんなリクエストを出してた。

GET /tdiary/tdiary-core.git/info/refs?service=git-upload-pack HTTP/1.1

で、github.comからはこんなHTTP bodyのレスポンスが返って来る

001e# service=git-upload-pack
000000a3e01e34cf9515f891fc989ae03506344dabd9814b HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed no-done
003fe01e34cf9515f891fc989ae03506344dabd9814b refs/heads/master
0051c7f733ced8208e755102ab5e4cda6ec82c6a7880 refs/heads/memoization-load_plugins
003e4f6e219899a96268fd8bf26c2070e8ff4425fbd5 refs/pull/1/head
(以下略)

んで、古いgitだと↓こう。

GET /tdiary/tdiary-core.git/info/refs HTTP/1.1

レスポンスは"403 Frobidden"

なので、git cloneが失敗するんだけど、エラーメッセージが

Initialized empty Git repository in /home/smbd/tdiary-core/.git/
Cannot get remote repository information.
Perhaps git-update-server-info needs to be run there?

ちょっとメッセージが不親切すぎやしませんかね…と思ったり。

まぁいまどきこんな古いgit使ってる人いねーか。4年半前のパッケージだしな…




«前の日記(2012年1月29日(日)) 最新 次の日記(2012年2月4日(土))»