はじめに
ソース管理はソフトウェア開発で重要な役割を果たします。チーム開発はもちろんのこと、自分1人での開発でも効果は絶大です。アプリケーション開発をスムーズに管理できますし、プロジェクトをきちんとバックアップしたり、ファイルレベルやプロジェクトレベルで以前の状態にロールバックできる点も安心です。私は最近、オープンソースのSubversionとTortoiseSVNを使い込んでいます。満足の行くソース管理ツールにやっと巡り合えたという思いです。この記事では、Visual StudioプロジェクトでSubversionとTortoiseSVNを利用する方法について、ひととおりの基礎知識を説明します。
ここでは、Subversionのインストールと設定から、TortoiseSVNでローカルのVisual Studioプロジェクトを扱うための基本的な操作までを示します。Subversionの詳細な解説は他に譲り、とりあえず使い始めるまでに必要な知識だけを、順を追って説明していきます。
この記事はもともとCoDe Magazineの2008年7月/8月号に掲載されたものですが、許可を得てここに転載しました。
Subversionとは
Subversionはオープンソースのソース管理リポジトリツールです。オープンソースプロジェクトで広く使われており、一般の大規模開発での利用も次第に増えつつあります。動作は高速かつスムーズで、サイズが小さくインストールも簡単です。しかもオープンソースのため、無償で利用できます。ファイルベースによる管理で、シンプルなディレクトリ構造のリポジトリを使用するため、コピーやバックアップも容易です。
TortoiseSVNはSubversionをグラフィカルに利用するためのツールで、エクスプローラのシェル拡張として動作します。 Subversionのコマンドラインインターフェースの代わりに、エクスプローラのコンテキストメニューで対象ファイルを操作したり、アイコンのオーバーレイでファイルの状態を把握したりできます。使い慣れたエクスプローラのインターフェースをソース管理に利用できるのは大きなメリットです。そのうえ、管理対象のファイルと実際のディレクトリ構造との関係が一目瞭然で、どのファイルがソース管理の配下にあるかがすぐに分かります。
Subversionのソース管理は「コピー・修正・マージ」モデルで行われます。ファイルをロックしたり、1人のユーザーがファイルを独占したりといった方法ではなく、変更を加えた部分をソースファイルにマージするというやり方です。マージできない変更がある場合(複数のユーザーが同じ行に変更を加えた場合など)にのみ、競合が通知されます。
私はVisual Studioの統合セキュリティに慣れていたため、マージという考え方に最初は半信半疑でした。しかし実際に使ってみると、極めて円滑に開発作業を進められることが分かりました。チェックアウトとチェックインを頻繁に繰り返したり、他ユーザーとの絡みでファイルをロックしたりという面倒がありません。コードに対し必要な作業を行い、完了後にTortoiseSVNですべての変更をチェックインするだけです。Visual SourceSafeやVaultなど、統合型のソースコード管理ツールを使ってきた人なら、ソース管理がVisual Studioと統合されていないのは言語道断に思えるかもしれません。私も最初は、Visual Studioに統合できないことを心配に思っていました。しかしいざ使ってみると、その点はまったく苦になりません。むしろ、統合型のソース管理ツールで発生していた問題に遭遇せずに済みます。統合型のツールでは、ソース管理の動作がおかしくなることがよくあり、複雑なVisual Studioソリューションや共有プロジェクトの場合には特に顕著でした。そのたびにVisual Studioやソース管理ツールでの対処が必要になって以前はイライラしていましたが、Subversionではそのようなことはありません。
Subversionはファイルシステムを追跡する仕組みが基盤となっているため、基本的にはどんなツールとの組み合わせでも利用できます。実際私は、.NETプロジェクトと古くからのFoxProプロジェクトの両方でSubversionを利用しています。同じ手順に従って統一感のある操作が可能です。さらにSubversionなら、ドキュメントからサポートファイルに至るまで、通常はVisual Studioプロジェクトに入っていないファイルも含めて、すべての種類のファイルを保存できます。