2008-04-23

結局gitってなんなの?

まあ、Yet Another Version Control Systemなわけだが、どうもCVSやSVNとは方向性が違うらしい。なにしろ、あのLinus Torvaldsによって書かれたのだ。CVSやSVNを無意味だと否定し、tar玉とdiffのほうが、まだいくらか使いやすいと公言するような人間だ。そんな人間がバージョン管理ソフトウェアを書くと、どうなるのか。

そもそも、gitはLinuxのカーネルの開発のために書かれた。Linuxのカーネルの開発は、かなり大規模で特殊だと思う。世界中にいる開発者たちが、コードを改良して、diffを送る。良いdiffは、公式に取り入れる。diffを作っている間にも、公式のソースコードは変更される。

そんなわけで、gitを書いたらしい。gitにはひとつの絶対的なレポジトリというのがないとでもいおうか。gitを使うと、どこにでもローカルレポジトリができる。このローカルレポジトリに対してコミットを行う。当然、本流と自分のソースは変わっていく。gitを使えば、本流から変更をひっぱってきたり、自分の変更とマージしたりできる。

とまあ、バージョン管理らしいことは一通りできるのだが、どう考えても使いやすいとは思わない。Linuxのカーネルのように、恐ろしく多数の人間が独自に変更してdiffを送るような、そういう環境でなければ、恐ろしく使いづらい。

まあ、何が言いたいかというと、stupid git!

そういえば、gitでググると、バージョン管理ソフトのgitがトップに来るが、コレはかなりすごいことじゃないだろうか。普通、gitといえば「ヤツ」を意味し、"stupid git"、とか、"ugly git"などと使われる単語のはずだ。ハリーポッターでも、頻出する決まり文句だ。Googleにおいて、そういう既存の用例を上回る評価をされるとは、よほどの影響力だ。

No comments: