ここでは、小さなテスト用のリポジトリを使用して、よく使用される機能をいくつか試してみます。当然、これは単なるクイックスタートガイドなので、全機能を説明するわけではありません。いったん試してみた後は、このユーザーズガイドの残り部分を時間をかけて読んでいただければ、もっと詳しいことが分かります。また、正しい Subversion サーバーの設定に関する知識も、そちらで説明しています。
現実のプロジェクトでは、どこか安全なサーバーにリポジトリを構築し、それを制御するために Subversion サーバーをインストールします。今回は練習なのでサーバーを使用せず、 Subversion のローカルリポジトリ機能を使用し、リポジトリをローカルのハードディスクの中に構築して直接アクセスするようにします。
最初にPC上で新しい空のディレクトリを作成します。どこに作成しても良いのですが、練習として C:\svn_repos
に作成したとします。そして、すぐに作成したフォルダーを右クリックし、コンテキストメニューから → を実行します。こうすれば、リポジトリがフォルダー内に作成され、使用可能な状態になります。また、 ボタンをクリックすれば、デフォルトの内部フォルダー構造を作成することができます。
ローカルリポジトリ機能は、テストや評価にはとても便利です。しかし、1人の開発者が1台のPCのみを使って作業をして場合を除いて、 Subversion 専用のサーバーを設置すべきです。小さい会社では、サーバーのセットアップ作業を嫌って、ネットワークフォルダー上のリポジトリをアクセスするようにしたがるかもしれません。しかし、それはやめてください。データを失うことになります。なぜこの方法が良くないのか、またサーバーをセットアップする方法については、「ネットワークフォルダー上のリポジトリへのアクセス」をお読みください。
これでリポジトリができましたが、その中身はまだ空です。 C:\Projects\Widget1
に追加したいファイルのセットがあるとします。エクスプローラーで Widget1
フォルダーに移動し、右クリックします。そして、 → を実行すると、次のインポートダイアログが表示されます。
Subversion のリポジトリは、インターネット上のどこのリポジトリでも指定できるようにURLで参照します。この場合は、私たちが持っているローカルリポジトリのURL、 file:///c:/svn_repos/trunk
を指すようにする必要があります。そして、プロジェクト名 Widget1
を追加します。 file:
の後に3つのスラッシュあることや、スラッシュの向きにも注意してください。
このダイアログのもう1つの重要な機能が、インポートメッセージ欄です。ここには何をしているのか説明するメッセージを入力することができます。プロジェクトの履歴を参照するとき、このコミットメッセージはどのような変更をなぜ行ったのかを知る有力なガイドになります。今回は簡単に「Widget1プロジェクトをインポート」とでも入力してください。 ボタンをクリックすると、フォルダーがリポジトリに登録されます。
これでプロジェクトがリポジトリに登録されましたので、次に日常の作業に使用する作業コピーを作成します。フォルダーをインポートしたとき、フォルダーが自動的に作業コピーになる訳ではないので注意してください。Subversionでは、新しい作業コピーを作ることをチェックアウト
といいます。リポジトリのWidget1フォルダーを、PC上の開発用フォルダーC:\Projects\Widget1-Dev
にチェックアウトしてみましょう。フォルダーを作成し、次にそれを右クリックして、 → を選択します。それからチェックアウト元のURLを、file:///c:/svn_repos/trunk/Widget1
のような形式で入力し、 をクリックします。これで開発用フォルダーに、リポジトリからファイルが読み込まれます。
初期設定では、チェックアウトのメニュー項目はTortoiseSVNのサブメニューではなく、エクスプローラーのメニューの最上位にあります。サブメニューの外にあるTortoiseSVNのコマンドは、先頭がSVN
で始まっており、 となっています。
この作業コピーのファイルをエクスプローラーで見ると、右下に緑色のチェックが入っていることに気が付くと思います。これは、この作業コピーがリポジトリの中にあるファイルと同じ内容であることを示しています。
さて、 filename>Widget1-Dev
しかし何が変更されたのでしょうか?変更されたファイルの1つを右クリックし、
→ を選択してみてください。 TortoiseSVN のファイル比較ツールが起動し、どの行が変更されたのかが厳密に表示されます。さて、変更の内容に問題がないようでしたら、リポジトリを更新しましょう。これを変更をコミット
すると言います。 Widget1-Dev
フォルダーを右クリックし、 → を選択してください。コミットダイアログには変更されたファイルが、チェックボックス付きで一覧表示されます。この中の一部のファイルのみをコミットすることもできますが、今回はすべてのファイルをコミットしましょう。メッセージ欄に何に関する変更なのかという説明を記入し、 をクリックします。ファイルがリポジトリにアップロードされていることを表示する進捗ダイアログが表示され、コミットが完了します。
プロジェクトの開発が進むにつれ、新規のファイルを追加する必要が出てくるかもしれません。 Extras.c
とというファイルにある新しい機能を追加し、参照を既存の Makefile
に追加するとしましょう。このフォルダーを右クリックして、 → を実行します。追加ダイアログが表示され、バージョン管理されていないファイルがすべて表示されるので、追加したいファイルを選択します。他にも、追加したいファイルを右クリックして、 → を実行することでファイルを追加することもできます。
次にフォルダーをコミットするとき、新しいファイルは追加と表示され、既存のファイルは変更と表示されます。なお、変更されたファイルをダブルクリックすると、どのような変更が行われたのかを確認することができます。
TortoiseSVNで最も便利な機能のひとつがログダイアログです。ここで、コミットされたファイルやフォルダの一覧と、コミット時に入力された詳細なメッセージを見ることができます。(勧めに応じてコミットメッセージを入力しましたか?入力していないなら、なぜ重要なのかが分かりますね)
はい、ここでは少しずるをしてTortoiseSVNリポジトリからのスクリーンショットを使いました。
上の欄には、コミットされたリビジョンの一覧が、コミット時のメッセージの冒頭と一緒に表示されます。リビジョンを1つ選択すると、中央の欄にはそのリビジョンのログメッセージの全文、下の欄には変更されたファイルやフォルダの一覧が表示されます。
それぞれの欄でコンテキストメニューを使用すると、その情報に関する様々な操作ができます。下の欄のファイルをダブルクリックすると、そのリビジョンでの変更の詳細を見ることができます。詳しくは「リビジョンログダイアログ」を参照してください。
どのバージョン管理システムでも、以前に行った変更を取り消す機能を持っています。元に戻したくなったら、 TortoiseSVN では簡単に実行することができます。
まだコミットしていない変更を取り消して、ファイルを編集前の状態に戻したくなった場合は、
→ を選択します。これで変更が取り消され(この場合はごみ箱の中に入ります)、作業をする前にコミットされたバージョンに戻すことができます。一部の変更だけを取り消したい場合は TortoiseMerge を使用すれば、行単位に変更を確認したり、変更を取り消したりすることができます。特定のリビジョンで行った変更を取り消したい場合は、ログダイアログを使用して変更を取り消したいリビジョンを探します。そして、
→ を選択すると、そのリビジョンで変更された部分が変更前の状態に戻ります。