Manual Version Control による資産管理

MVC とはなにか

手動又は単純なコピーによってバージョンを管理する思想である。
MVC と混同して考えられている HVS(Handy Version System) は手法である。

MVC の利点

MVC は考え方でありシステムの名称ではない。
しかしその思想はあらゆる OS に組み込まれており実装されている。
またこれまでのバージョン管理とは異り変更前にバージョンを上げる事が可能となっている。

MVC による分散ディレクト

MVC は高度な分散ディレクトリ構造となっている。
分散ディレクトリの概念では trunk/branches のディレクトリというものはなく全てのディレクトリが trunk であり branches なのだ。

MVC の親子関係

MVC ではバージョンが上る毎にディレクトリにバージョン数を記述する事になっている。
特定のバージョンのディレクトリから枝分れする場合は元となるバージョン番号と枝分かれしたバージョン番号の両方が記述される*1

あらゆるバージョン管理システムMVC により管理される

今一番熱いバージョン管理と言えば git だろう。
またエンタープライズの現場では svncvs がメジャーである*2
しかしどのシステムを使用したとしても最終的には MVC によって管理されているのだ。

例えば git では分散リポジトリの概念によりリポジトリがローカルにコピーされる。
そのコピーされたリポジトリは HVS や MVC の思想に準拠したプログラムなどによって外部記憶媒体に移されるだろう。

HVS でのバージョン管理の仕方

1. 対象ファイルを選択
2. Ctrl + c
3. Ctrl + v

とする事により「コピー 〜 hoge*3というフォルダが生成される
そのまま新しいディレクトリ(バージョン)を作成する度に「コピー (2) 〜 hoge*4などディレクトリの名称にバージョンが記述される。

MVC で気をつけるべき事

MVC はとても自由度が高い為、様々な拡張がされて使用される事が多い。
ディレクトリ名に日付を入れたり、最新などとタグを付けたりする習慣のプロジェクトもよくあるが、徹底して管理しなければ複数の最新タグがついたディレクトリなど混乱の原因になってしまう。

最後に

MVC はとても古くからある考え方である。
これまでの様々なプロジェクトで利用され我々の生活に溶け込んできた。
しかし、まだ MVC の本質を理解して使用している人は少ないだろう。
これを機に今一度 MVC の利用方法を見つめなおして欲しい。


合わせて読みたい
感謝駆動開発 TDD (Thanks Driven Development)
id:gongoZ:20110304

*1:残念な事に Mac OSX ではこの仕様が満されていない

*2:今だに vss の所も多いだろう

*3:OSX では hoge1

*4:OSX では hoge2