ソースコードを管理するという事

 色々あって説明しにくいのですが、ソースコード管理ツールをこれから使う「かもしれない」時に、今使っているVisualSorceSafeを使え「ないかもしれない」場合の選択肢を探している最中です(わけがわからなくてごめんなさい^^;)。

 でまあ、順当にCVSに落ち着く訳ですが、これVSSと違ってチェックアウト時にファイルにロックがかからないのが、元VSSユーザーとしては不安でなりません。という話を既に社内でCVSを運用している友人に聞いたら「マージされるんだから気にする必要は無い」とアドバイスをもらいました。

 確かに、各人のコード修正がコンフリクトを起こさない物である限り、ロックはあってもなくても同じです(むしろ、同時修正が出来る分作業効率が高い)。そして、コード修正とはそういう作業である事が暗黙的に求められているという気もします。これの面白い所は、「どこを修正するか」をコード管理ツールでは「管理」出来ないという事実です。

 極端な話、コードを全部削除して空のファイルをコミットしても、それはそれでアリです。現状ではこのような事が起きた場合履歴を復帰させて対応するでしょう。思うに、これは管理ではなく単なるログ保存なのではないでしょうか。もちろんその意義は十分に理解しているし、傍受しています。しかし、これ「管理」にはいま一歩踏み込んで無いんじゃないかなあ?

 コード修正によってデグレを起こさない為には、バグが無いと判断された箇所は直せないようにする、といった処理が必要になるのではないでしょうか。どうやって「バグが無い」と判断できるかはまた別の話ですが。

 プログラミングって何故か「ファイル単位」に対する依存がそこかしこにあって、そこからプログラミング自体が歪んでいるような気がしてなりません。そろそろファイル単位を超えた単位でコードが記述できる言語が登場してもよさそうです(ファイル単位を超えるってのがどういう事なのか書いててよくわかってませんが)。

 パーシャルクラスはその片鱗を感じさせますが、これってまずファイルという概念があるからファイルを超えてという話になるんであって、なんか本末転倒のような気が……いやそうでもないかな……