トップ 最新 追記
RSS feed

ただのにっき


2009-03-26(木) [長年日記]

Corkscrewでgitのproxy越え(その2)

先日のトライで、「git:~」なリポジトリに関してはアクセスできるようになったが、GitHubではpullなどの操作はsshを経由するので×なことが判明。逃げ道を探す。

環境変数ではなくgit configを使う

まず、proxy経由でのアクセスを指示するのに、環境変数はよくないという指摘をもらったので、正統派のgit configを使って指定する。

git config --global core.gitproxy 'git-proxy for github.com'

core.gitproxyではproxy越え用のコマンドと、それを使うドメインを指定する。普通、proxy指定ではproxyを使わないドメインを除外指定するけど、こっちは使うドメインを指定するのだな。用途からすると正しいかも。

当面あらゆる外部リポジトリはGitHubの予定なので、面倒だから--globalを指定した。これでいろんなプロジェクトで指定して回らなくて済む。別のサービスが増えるようなことになったら、リポジトリごとに指定しよう。

GitHubにproxy経由でsshアクセス

sshを使う場合は通常「git@github.com:USER/REPOS.git」、つまり「github.com:22」へアクセスするのだが*1、HTTP/HTTPSしか通さないproxyのために、ちゃんと「ssh.github.com:443」が用意されている(参考:Access GitHub repositories from work (take that, firewall!).)。

ということで、(「git@github.com:USER/PROJECT.git」というURLをコピペして使えるように)~/.ssh/configにちょっと仕掛けを入れればいい:

Host github.com
HostName ssh.github.com
Port 443
ProxyCommand corkscrew YOUR_PROXY_HOST YOUR_PROXY_PORT %h %p

これでいけるはず:

% git clone git@github.com:tdtds/rubbs.git
Initialized empty Git repository in /home/sho/src/rubbs/.git/
remote: Counting objects: 34, done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 34 (delta 4), reused 0 (delta 0)
Receiving objects: 100% (34/34), 38.41 KiB, done.
Resolving deltas: 100% (4/4), done.
% 

おk!

Tags: git

*1 gitというアカウントを指定しているということは、GitHub上のユーザは全員同じアカウントで、公開鍵だけで識別されているということか。

本日のツッコミ(全2件) [ツッコミを入れる]

さく [bitbucketなんかもsshアカウントはhg共通で、鍵で識別してますね。]

ただただし [公開鍵をDBに入れちゃえば、ユーザ管理が楽ですしね。賢いな。]


2009-03-25(水) [長年日記]

だいたいgitが使えるようになった。またはRuBBSとmobilerをGitHubへ

Git入門のチュートリアルをひと通り読んだあとは、ネット上で日本語情報を軽く漁るという、系統だった学習とはとても言えない(でもいつも通りの)手法でだいたいの雰囲気はわかった。というか、GitHubで都度つどに出てくるヘルプが優秀で、その通りにコマンドをツッコむと、だいたいしたいことができるというのは、なかなかすごい。今回いちばん感心したのはGitHubのユーザビリティだったりして。

というわけで、spc.gr.jpの閉鎖にともなって移転先のなかった(しかしすでに歴史的意味しかなさそうな)古いプロジェクトで練習した。RuBBSmobiler。自宅サーバにあったsvnリポジトリはすでに救出不能なので、最新のパッケージを入れて、READMEの文字コードをUTF-8にした程度だけど(GitHubはREADMEファイルを見つけて勝手に表示してくれるので)。

あとは人サマのリポジトリをcloneして、修正をpushしたりpullしてもらったりするあたりが未体験だけど、全リポジトリが対等なSCMだから勝手は同じだろう。

実際使ってみて、Linusが「ソース管理というよりはパッチ管理」を目指して作ったというのがよくわかった。確かにパッチのやり取りって、従来のSCMではシステム化されていない泥臭い領域だったしなぁ。これは確かに(特にOSS開発では)便利な方式だ。Gitのよさがちょっとわかったよ。

Tags: git

2009-03-24(火) [長年日記]

さくらインターネットにgitを入れたメモ

昨日のSubversionに比べて依存関係がないのでとても楽。

% wget http://kernel.org/pub/software/scm/git/git-1.6.2.tar.gz
% tar zxf git-1.6.2.tar.gz 
% cd git-1.6.2
% ./configure --prefix=$HOME --without-tcltk
% gmake && gmake install
Tags: git

トップ 最新 追記
RSS feed