コード開発プロジェクトにおけるソース管理システムの正しい利用法

 ソース管理システムの適切な使いこなしはプログラマにとって重要なスキルの1つであるが、その習得となると、実務の現場での経験と試行錯誤を通じて身につけるしかない。そのため学生や趣味のプログラマにとって、こうしたシステムの習得は時間がかかる以上に苦痛を伴う作業のはずだ。よって本稿では、ソース管理システムの初心者が陥りやすい落とし穴および、それらを回避するためのベストプラクティスを具体例とともに解説することにする。

 ソース管理システムを使用する本質的な目的は、プログラマに余分な負担を掛けることなくプログラミング作業に集中させることである。そして開発対象のソフトウェアに追加した変更が思っていた程の効果を発揮しなかったり、あるいは追加そのものが間違っていたという場合でも、ソース管理システムを使用していれば最後にチェックインしたバージョンへと即座に復帰させることができる。またコードベース開発を複数のプログラマが並行して進めていくケースにおいても、ソース管理システムを介することで各自の開発成果をスムースに統合できるようになる。実際、複数の人間でソフトウェア開発にあたる場合にソース管理システムが不可欠であるとされているのは、こうした2つの特長を備えているからに他ならない。

 現行のソース管理システムは、オープンソースおよびプロプライエタリの双方の形態で提供されている。自分がどれを使用するべきかの判断には様々な要因が関与するものだが、実際には選択の余地無く特定システムの使用が強制されるというケースも多いだろう。もっとも最新のシステムであれば、些末的な機能を除いた大部分の基本機能における相互運用性が確保されているので、今現在どのソース管理システムを使用しているかは特に問題とならないはずだ。いずれにせよ使用中のソース管理システムに付随するメリットよりデメリットの方が高いと感じたなら、その置き換えを検討するべきだろう。そうした候補となるのはCVSdarcsSubversionであろうが、これらの詳細については個々のWebページを参照して頂きたい。このうちSubversionについては本丸ごと1冊分に匹敵する本格的なマニュアルが用意されており、これは基本的にはSubversionを対象とした解説書だが、他のソース管理システムにも共通する有用な内容が含まれている。

 多くのプログラマがしでかす致命的なミスの1つに、こまめなチェックインを怠るというものがある。確かに手を加えている途中のコードとは不完全な状態に置かれているのであり、その他様々な理由が相まって、そうした状態でチェックインするのは正直気が進まないといったところだろう。実際、メインの開発エリアにてコードのチェックインを避けるというのも1つの判断ではあるが、だからといってチェックインをいっさい行わないという方針が正当化される訳ではない。これに付随する最大の問題は、次の段階の変更をコードに加える際において過去に行った変更をすべて失う事態が懸念されることである。つまりチェックインを怠れば怠るほど、1つのミスですべてを御破算にしてしまう危険性が高まることになるのだ。