開発などで良く利用されるバージョン管理システムと言えば、かつてはCVS、現在はSubversionが主流だろう。実際、開発をSubversionで管理してきた中で、特に不満はなかった。が、サーバ集約型のために、母体になるサーバを用意するのがネックになってきた。

ピクチャ 14.png
git –helpの出力結果

そこで次のバージョン管理方法を考えてみたい。サーバ集約型ではない、分散管理型のバージョン管理だ。

今回紹介するオープンソース・ソフトウェアはGit、Linuxカーネルの開発でも利用されている分散型バージョン管理システムだ。

開発の規模が拡大し、ソースコードの量が膨大になってくると中央集約型のバージョン管理ではサーバの負荷やリポジトリの操作が大変になってくる。また、コミットがサーバにつながった状態でないとならないという制約もある(SVKを使う手もあるが)。

ピクチャ 15.png
gitのコミットログ

その点、Gitであれば最初にサーバのコピーを作成し、コミットはローカルに行うようになる。そして最後にpushでサーバに変更を反映すれば良い。お互いコピーなので、規模の小さな開発であればサーバなどと大げさでなくとも、クライアントPCレベルでも十分だろう。

レポジトリへのアクセスには、WebDAV、Gitプロトコル、rsyncまたはSSHが利用できるなど多彩な仕組みを提供している。コミットがローカルレベルというのが他のバージョン管理とは大きく異なるが、慣れれば便利に感じられるはずだ。

なお、Gitを使って自分のレポジトリを作成したいという人にお勧めなWebサービスとして「github」がある。そちらに関する記事をフリーのGitレポジトリサービス「github」 [Resident of Net] にて記載したので興味のある方はぜひご覧いただきたい。

Git - Fast Version Control System
http://git.or.cz/