徒然日記
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年半前のパッケージだしな…