2010/06/06

バージョン管理について

システム開発では各バージョンを管理するためバージョン管理のシステムを使うことがほとんどです。このバージョン管理はソースコードだけでなく、画像ファイルやデータなども管理できるので大変便利です。具体的には、何かのトラブルで前のバージョンに戻したいときや。バグの修正ログを確認する際に非常に有効です。

さてバージョン管理用のソフトですが、CVSからSubversion、そしてGitという風なトレンドになっています。私個人はSubversionを今でも使用していますが、Gitもたまに使います。いまはGitがアツイようです。SubversionからGitへの以降も下記で簡単にできます。


$ git svn clone -T trunk -b branches -t tags <subversion リポジトリ="">
Gitの有利な点は分散管理を取っている点で、Subversionでは毎回変更をサーバー側に登録(コミット)しなくてはいけません。そのコミット作業がファイル作業が膨大になってくると意外と時間がかかります。Gitではそのコミット作業をローカル環境で行えます。小さい修正をローカルで行い、ある程度の段階で中央に反映するといったことができるのが利点です。

まあいずれにせよバージョン管理システムを管理する人が必要ですので、その管理のシステムは一本化した方が良いと思われます。今からバージョン管理を仕様とする人はGitにしておくほうがオススメです。

ただプロジェクトを複数持っている場合は管理人も複数いる場合が多く、一本化するのは中々難しいです。私はまだSubversionを使っていますので、その場合のケースをまとめておきます。

Subversionのサーバーを立てる方法はいろいろありますが、linuxの場合はyumコマンドでインストール(yum install httpd subversion subversion-server)、Windowsの場合はバグトラッキングシステムも含めたtrac lightningをインストールするのが簡単です。

私の場合プロジェクトメンバーが各所にいる場合はLinuxでサーバーを立ち上げApacheのDAVモジュールも利用します。サーバーには認証キーを用い、ssh経由で接続($svn co svn+ssh://なんたらかんた)してもらいます。

ローカル環境で開発を行う場合は、わざわざバグ管理も面倒ですのでtrac lightningを使用します。tracを使うメリットとしては、GUIが優れていますのでシステム屋でなくともバグ登録ができ、wikiシステムも備えていますのでナレッジの一本化ができます。(Gitに移行する際に諸刃ともなりますが)

クライアント側ではターミナルを使っての管理か、Eclipseのプラグイン管理か、 tortoiseSVNでの管理かは好みによって使い分ければよいかと思います。

あと忘れてはいけないのがコードバックアップです。ちゃんと定期的に異なるハードディスクにコピーできるようにしておきましょう。バッチファイルか何かで処理してしまうのが手っ取り早いでしょう。trac lightningであればbackup.batがついてきますのでこれを利用すればOKです。

0 件のコメント: