« どうか養生してほしい。 | トップページ | 今日の日記:詰問調は辛い。 »

2008年8月 1日 (金)

[IT覚書][subversion]最新版管理だって難しい。

 つい昨日、TortoiseSVN の 1.5.2 がリリースされたようだ。対象 svn サーバのバージョンは Subversion 1.5.1 である。
 1.5.x 系が安定するのはもう少し先かもしれない。

 バージョン管理システムというのは一種の文化であり、本来ならば何気なく運用されるべきなんだろう。そしてそのためには、プロジェクトに参加している人すべてが、バージョン管理システムの仕様を理解していないといけない。一部の人だけが知っていても意味が無い。

 ちょうど一年前携わっていた、大規模システム開発の基本設計において、僕は構成管理の役目を担ったので、まずネットワークで共用しているドキュメントサーバにおけるディレクトリ/ファイルの命名規則などを作った。
 最も口を酸っぱくして言い続けたことが「ドキュメントの最新版が入っているディレクトリには最新版だけ入れて古いファイルは消してしまうか別ディレクトリに移動させろ」ということだった。

\010_最新成果物
\020_成果物履歴

 などというディレクトリ名を決め、ここでいう「\010_最新成果物」の中には、文字通り最新の成果物しか入れてはいけない。同じディレクトリに日付で区別された複数の版が存在していてはいけない。
 このことを割と初めの段階から言い続けていたので、大人数で一斉にドキュメントを作成したときにも大きな混乱はなかった。これはバージョン管理よりももっと基礎となる「最新版管理」だ。なんだそんな基本的なことか。そう言われるかもしれない。でも、これは皆がちゃんとやろうとしないとすぐに崩れる。

 バージョン管理システムをちゃんと使えば、このようなことをしなくても良くなる……はずである。あくまでも、バージョン管理システムがどういうものかを皆が理解して運用することが前提となる。

 来週、グループ内部向けに、3回めとなるsvnの説明会をやる予定。啓蒙活動である。

 …開発言語に関する話題はまたいずれ…。

|

« どうか養生してほしい。 | トップページ | 今日の日記:詰問調は辛い。 »

コメント

えーと、みんながてきとうにモジュールのリビジョンを上げていくとビルドすることができないですよね。
仕様書のベースラインを作っておいて、それに到達した時点で、バージョンを固定する作業が必要になると思うんだけど、subversion って、revision 管理以外に、version 管理もできるんだろうか。
version 固定(ベースライン固定)しないと、テストチームにビルドを回せないように思うのですが。

投稿: くりにゃー | 2008年8月 2日 (土) 12時09分

>くりにゃーさん
 基本的にはSVNで保持するものはリビジョン番号です。これはコミット毎に自動カウントアップされます。このリビジョン番号は各ファイルに保持する他、リポジトリ全体でも保持します。特定のバージョンとして固定させたい場合は、「タグ」というディレクトリにコピーする運用が推奨されています。その時にディレクトリの名前をバージョン番号にすれば良いことになります。
 Windows環境であればTortoiseSVNが単体GUIで使えるので、それでいろいろ試すとわかります。

 テストチームかぁ。僕も本来ならデプロイ専門チームが必要かもしれないと思っているけれど、なかなか体制面できついですね。

投稿: あゆざかけい | 2008年8月 2日 (土) 21時36分

この記事へのコメントは終了しました。

« どうか養生してほしい。 | トップページ | 今日の日記:詰問調は辛い。 »