試してみましょう

ここでは、小さなテスト用のリポジトリを使用して、よく使用される機能をいくつか試してみます。当然、これは単なるクイックスタートガイドなので、全機能を説明するわけではありません。いったん試したみた後は、このユーザーガイドの残り部分を時間をかけて読んでいただければ、もっと詳しいことが分かります。また、正しい Subversion サーバーの設定に関する知識も、そちらで説明しています。

リポジトリの作成

現実のプロジェクトでは、どこか安全なサーバーにリポジトリを構築し、それを制御するために Subversion サーバーをインストールします。今回は練習なのでサーバーを使用せず、 Subversion のローカルリポジトリ機能を使用し、リポジトリをローカルのハードディスクの中に構築して直接アクセスするようにします。

最初にPC上で新しい空のディレクトリを作成します。どこに作成しても良いのですが、練習として C:\svn_repos に作成したとします。そして、すぐに作成したフォルダーを右クリックし、コンテキストメニューから TortoiseSVNここにリポジトリを作成... を実行します。こうすれば、リポジトリがフォルダー内に作成され、使用可能な状態になります。また、 フォルダー構造を作成 ボタンをクリックすれば、デフォルトの内部フォルダー構造を作成することができます。

重要

ローカルリポジトリ機能は、テストや評価にはとても便利です。しかし、1人の開発者が1台のPCのみを使って作業をして場合を除いて、 Subversion 専用のサーバーを設置すべきです。小さい会社では、サーバーのセットアップ作業を嫌って、ネットワークフォルダー上のリポジトリをアクセスするようにしたがるかもしれません。しかし、それはやめてください。データを失うことになります。なぜこの方法が良くないのか、またサーバーをセットアップする方法については、 「ネットワークフォルダー上のリポジトリへのアクセス」をお読みください。

プロジェクトのインポート

これでリポジトリができましたが、その中身はまだ空です。 C:\Projects\Widget1 に追加したいファイルのセットがあるとします。エクスプローラーで Widget1 フォルダーに移動し、右クリックします。そして、 TortoiseSVNインポート... を実行すると、次のインポートダイアログが表示されます。

図1.2 インポートダイアログ

インポートダイアログ


Subversion のリポジトリは、インターネット上のどこのリポジトリでも指定できるようにURLで参照します。この場合は、私たちが持っているローカルリポジトリのURL、 file:///c:/svn_repos/trunk を指すようにする必要があります。そして、プロジェクト名 Widget1 を追加します。 file: の後に3つのスラッシュあることや、スラッシュの向きにも注意してください。

このダイアログのもう1つの重要な機能が、 インポートメッセージ 欄です。この中には、いつ、どのような理由で、何をしたのか、メモを残すことが出来ます。これは後に参考になるものです。今回は簡単に Widget1プロジェクトをインポートとでも入力してください。 OK ボタンをクリックすると、フォルダーがリポジトリに登録されます。

作業コピーのチェックアウト

これでプロジェクトがリポジトリに登録されましたので、次に日常の作業に使用する作業コピーを作成します。フォルダーをインポートしたとき、フォルダーが自動的に作業コピーになる訳ではないので注意してください。 Subversion では、新しい作業コピーを作ることを チェックアウト といいます。リポジトリの Widget1 フォルダーを、PC上の開発用フォルダー C:\Projects\Widget1-Dev にチェックアウトしてみましょう。フォルダーを作成し、次にそれを右クリックして、 TortoiseSVNチェックアウト... を選択します。チェックアウト元のURLを、 file:///c:/svn_repos/trunk/Widget1 のような形式で入力し、 OK をクリックします。これで開発用フォルダーに、リポジトリからファイルが読み込まれます。

この作業コピーのファイルをエクスプローラーで見ると、右下に緑色のチェックが入っていることに気が付くと思います。これは、この作業コピーがリポジトリの中にある同一ファイルと同じ内容であることを示しています。

ファイルの変更

さて、 Widget1-Dev の中にある、 Widget1.cReadMe.txt の2つのファイルについて、内容を変更してみましょう。これらのファイルは、アイコンのオーバーレイが赤に変わるはずです。これは、作業コピーがローカルで変更されたことを示しています。

何が変更されたのでしょうか?変更されたファイルの1つを右クリックし、 TortoiseSVN差分 を選択すると、ファイル比較ツールが現われ、どの行が変更されたのかを見ることができます。

図1.3 ファイルの差分を見る

ファイルの差分を見る


さて、変更の内容に問題がないようでしたら、リポジトリを更新しましょう。これをコミットと呼びます。 Widget1-Dev フォルダーを右クリックし、 TortoiseSVNコミット を選択してください。フォルダー内のファイルのうち、変更があったものがチェックボックス付きで表示されます。変更したファイルの一部だけをコミットすることも出来ますが、この場合は両方のファイルをコミットしましょう。メッセージの項に、何をどのような理由で変更したか書き込み、 OK をクリックします。ファイルがリポジトリにアップロードされていることを表示する進捗ダイアログが表示され、コミットが完了します。

ファイルの追加

プロジェクトを使った作業が進むにつれ、新規のファイルを追加する必要が出てくるかもしれません。Extras.c とというファイルにある新しい機能を追加し、参照を既存の Makefile に追加するとしましょう。このフォルダーを右クリックして、 TortoiseSVN追加 を実行します。追加ダイアログが表示され、バージョン管理されていないファイルがすべて表示されるので、追加したいファイルを選択します。他にファイルを追加するには、追加したいファイルを右クリックし、 TortoiseSVN追加 を実行するという方法もあります。

次にフォルダーをコミットするとき、新しいファイルは 追加 と表示され、既存のファイルは 変更 と表示されます。変更されたファイルをダブルクリックすると、どのような変更が行われたのかを確認することができます。

プロジェクトの変更履歴を見る

TortoiseSVN で最もよく使われる機能のひとつが、ログダイアログです。ここで、コミットされたファイルやフォルダの一覧と、コミット時に入力された詳細なメッセージを見ることができます。

図1.4 ログダイアログ

ログダイアログ


上の欄には、コミットされたリビジョンの一覧が、コミット時のメッセージの冒頭と一緒に表示されます。リビジョンを1つ選択すると、中央の欄にはそのリビジョンのログメッセージの全文、下の欄には変更されたファイルやフォルダの一覧が表示されます。

それぞれの欄でコンテキストメニューを使用すると、その情報に関する様々な操作ができます。下の欄のファイルをダブルクリックすると、そのリビジョンでの変更の詳細を見ることができます。詳しくは、 「リビジョンログダイアログ」を参照してください。

変更を取り消す

どのバージョン管理システムでも、以前に行った変更を取り消す機能を持っています。元に戻したくなった時、 TortoiseSVN では簡単に実行することができます。

まだコミットしていない変更を取り消して、ファイルを編集前の状態に戻したくなった場合は、 TortoiseSVN変更の取り消し... を選択します。これで変更が取り消され(ごみ箱の中に入ります)、作業をする前にコミットされたバージョンに戻すことができます。一部の変更だけを取り消したい場合は TortoiseMerge を使用すれば、行単位に変更を確認したり、変更を取り消したりすることができます。

特定のリビジョンで行った変更を取り消したい場合は、ログダイアログを使用して変更を取り消したいリビジョンを探します。そして、 コンテキストメニューこのリビジョンにおける変更を取り消す を選択すると、そのリビジョンで変更された部分が変更前の状態に戻ります。