gitolite を使ってみた

このごろ個人的な Git リポジトリ管理ツールとして gitolite を新たに使い始めました。

同種のソフトウェアとして gitosis があり、Git の本などで紹介されていることも多いのですが、gitosis は Debian ではすでに削除されているなど古いソフトウェアらしいので、これから始めるなら開発が活発な gitolite がいいようです。

gitolite は gitosis に比べて、ブランチやパス毎にアクセス権が細かく設定できるとか ADC でユーザに管理ツールが提供できたりとかなかなかすごいのですが、どうも腑におちなかったのが複数の SSH 公開鍵 (pubkey) を持つユーザの登録方法です。

gitosis ではひとつの鍵ファイル keydir/yaegashi.pub に複数の pubkey を連結してつっこんでおけたのですが、gitolite ではそれが禁止されています。理由はよくわかりませんが、こちらのほうが pubkey の管理がしやすくて事故が少ないといったことを、 gitolite の作者がどこかに書いていた気がします。

それではユーザ yaegashi の複数の pubkey を登録するにはどうするのかというと、ドキュメントによればとにかくファイル名を yaegashi.pub 固定にしてサブディレクトリを増やしてなんとかしろということのようです。

keydir/yaegashi.pub
keydir/home/yaegashi.pub
keydir/office/yaegashi.pub

しかし正直いってこれはあまり管理しやすいとは思えません。ユーザが yaegashi ひとりだけならよいですが、yaegashi と似たような pubkey の区別をしているユーザの登録が増えると頭の痛いことになります。

実は当初はサブディレクトリを作らずに @ を含むファイル名を使う方法を説明していたようです。次のような名前のファイルはすべて yaegashi の pubkey として扱われます。

keydir/yaegashi.pub
keydir/yaegashi@home.pub
keydir/yaegashi@office.pub

こちらのほうがまだわかりやすい気がしますが、これはなぜか古い方法という扱いになっています。ドキュメントによれば「私はこちらが好きなので機能としては残すけど、説明しても理解できない人が多いので、ドキュメントにはこれ以上書かない」といった意味のことが書いてありました。

gitolite の作者は gitolite の使う OpenSSH について理解が浅い人たちのサポートに相当疲れているようで、この件に限らず彼の書くドキュメントや ML の投稿の随所からそのような感情がにじみでている気がします。

なお gitolite は最初から書き直した新バージョン (g3) の開発を進めているようですね。このへんの改善を期待したいところですが、今のところ複数 pubkey の扱いの方針に変更はないようです。

2012/04/02 15:47:00 JST