インストール
まずは、SubversionとTortoiseSVNをダウンロードしましょう。インストールは、Subversionの後にTortoiseSVN という順番で行います。さらに、Visual Studioと統合したい場合は、VisualSVN(49ドル)やAnkh(フリー)といったツールもあります。
TortoiseSVNはSubversionのGUIフロントエンドとして動作します。バージョンが違うと対応できない場合がありますので、両方とも最新バージョンをインストールするようにしましょう。
VisualSVNはVisual Studioと統合できますが、UIの大半はTortoiseSVNと同一です。
ここからは、新しいリポジトリを作成して、複数のプロジェクトで構成されるVisual Studioのソリューションを追加する方法について説明していきます。
リポジトリの作成が不要で、既存のリポジトリのローカルコピーを作成する方法のみを知りたい方は、「リポジトリからローカルにファイルのコピーを取得」の節までお進みください。
TortoiseSVNの設定
最初に、TortoiseSVNの設定に小さな変更を1つ加えておくことをお勧めします。それは、ローカルのSVNリポジトリの名前を.svnから _svnに変えるという設定です。Visual Studioでは、先頭がピリオドのフォルダ名で問題が発生するため、_svnとしておく方が安全です。特に、Visual Studio統合型のツールに後で移行する可能性がある場合には必要になります。
TortoiseSVNのインストールが完了した状態で、エクスプローラでファイルまたはフォルダを右クリックし、ショートカットメニューの[TortoiseSVN]を選択して、[Settings]を選択します。次に、[General]タブの[Use '_svn' instead of '.svn'(".svn"ディレクトリの代わりに"_svn"を利用する)]チェックボックスをオンにします(図1を参照)。
![図1 TortoiseSVN設定の[General]タブ。Visual Studioでは、フォルダ名の先頭がピリオドの場合に問題が発生するため、.svnではなく_svnを使用するようにTortoiseSVNの設定を変更しておくことをお勧めします](http://cz-cdn.shoeisha.jp/static/images/article/3114/38974_figure01.jpg)
TortoiseSVNによるリポジトリの新規作成
次に、新しいリポジトリの作成に進みます。リポジトリとは、TortoiseSVNが使用するディスク上の保存領域のことで、バージョン管理の対象となる全データがその中に保存されます。リポジトリの作成場所は、ローカルマシンでもよいですし、ユーザーがアクセス権を持つリモートサーバでも構いません。リモートサーバへのアクセスには、Subversionのデーモンサービスを用いる方法と、別途インストールしたApacheモジュールでHTTPを用いる方法があります。いずれの場合も、リポジトリを作成したマシン上でサービスが稼動している必要があるという点が肝心です。
リポジトリの作成では、メインのリポジトリとなるメインフォルダをまず作成します。私はいつも、検索やバックアップが簡単なように、最上位レベルのフォルダを使うようにしています。そこで、例えば「d:\subversion」のようにフォルダを決めたうえで、次の操作を行います。
- フォルダ「d:\subversion」を作成します。
- [TortoiseSVN]を右クリックし、[Create repository here.(ここにリポジトリを作成)]を選択します。
- このリポジトリのアクセス許可を設定します。
アクセス許可を設定するには、「d:\subversion\conf\svnserve.conf」を編集し、パスワードを設定します。「SvnServe.conf」で次のように設定します。
[general] # anon-access = read auth-access = write password-db = passwd realm = SummaLp
この設定の場合、リポジトリへのアクセスには認証が必須になります。認証を受けたユーザーには書き込み権限を付与し、匿名ユーザーには一切のアクセス権を与えません。
次にパスワードファイル(ファイル名は拡張子なしの「passwd」)を編集し、アクセスを認めるユーザーを、ユーザー名とパスワードのペアの形で設定します。次のような形式です。
[users] ricks = wonkiewind billp = haggard
Subversionをサービスとして起動する設定
リポジトリを作成したら、次はリモートからアクセスできるようにするための設定です。方法は2つあります。1つは、Subversionに内蔵のデーモンサーバを使い、TCP/IP接続(デフォルトポートは3690番)経由でリポジトリのデータを取得する方法です。もう1つは、Apacheと Apacheモジュールを使い、HTTP経由でリポジトリに接続する方法です。デーモンを使ったTCP/IP接続はSubversionにネイティブの方法で、セットアップも簡単です。速度の面でもHTTP方式より優れています。一方、HTTP方式はApache経由で動作するため、セキュリティや認証の面で優れており、アクセスも80番ポートで可能です。この記事では、TCP/IPデーモンサービスを利用する方法のみを説明します。
このサービスは、Subversionのインストール先の「BIN」ディレクトリにある「SvnServe.exe」です。このファイルを手動で実行しても動きますが、サービスとしてインストールする方が断然お勧めです。それには、次のコマンドラインを実行します(バッチファイルにするとよいでしょう。全体を1行で記述してください)。
sc create svn binpath= "\"c:\programfiles\subversion\bin\svnserve.exe\" --service -rd:\subversion" displayname= "Subversion Server" depend= Tcpip start= auto
上記のコマンド中のパスは、実際のインストール先とリポジトリのパスに合わせて修正してください。また、コマンド中のスペースも重要で、省略はできません。私の場合、スペースを入れなかったせいでうまく動作しなかったことがありました。
別のポートを使用したい場合は、「listen-port=nn」と追加します。nnはポート番号です。その他のオプションについては、ドキュメントを参照ください。
サービスを開始するには、サービスマネージャかコマンドプロンプトを使います。コマンドは次のようにします。
sc start svn
これが必要なのは最初の1回のみです。上記のコマンドでサービスをインストールした場合、次回のWindowsの起動時からはサービスも自動的に起動します。
リポジトリの動作確認
リポジトリの動作を確認するために、任意の場所でTortoiseSVNを起動し、IPアドレスかホスト名を使って接続を試してみます。エクスプローラを開き、右クリックして、ショートカットメニューの[TortoiseSVN]を選択し、[Repo-browser.]を選択します。「svn://<IP アドレスまたはホスト名>/」と入力すると、作成したリポジトリが表示されるはずです。リモートマシンにリポジトリをインストールした場合は、IP アドレスかドメイン名を使います。
ノードをダブルクリックしてリポジトリを開いてみましょう。エラーメッセージが表示されるようなら、リポジトリに接続できていません。ローカルマシンのリポジトリであれば、普通は問題ないはずです。接続できない場合は、サービスの登録時に指定したリポジトリとパスに誤りがないか確認してください。リモートマシンのリポジトリの場合は、サーバが待機しているポートへの通信が接続側とサーバ側のファイアウォールを通過できるかどうか確認してください。デフォルトのポートは3690番です。
エラーなしでリポジトリを開けるようになったら、Subversionによる共有ソース管理の準備は完了です。
