このセクションでは、小さなテストリポジトリで最もよく使用される機能を試す方法を紹介します。当然のことながら、すべてを説明するわけではありません。これはあくまでもクイックスタートガイドです。使い方がわかったら、このユーザーガイドの残りの部分を読んで、より詳細な内容を理解してください。適切なSubversionサーバーのセットアップ方法についても詳しく説明しています。
実際のプロジェクトでは、安全な場所にリポジトリをセットアップし、それを制御するSubversionサーバーを用意します。このチュートリアルでは、サーバーを必要とせずにハードドライブに作成されたリポジトリに直接アクセスできる、Subversionのローカルリポジトリ機能を使用します。
まず、PC上に新しい空のディレクトリを作成します。どこに配置しても構いませんが、このチュートリアルではC:\svn_repos
とします。新しいフォルダを右クリックし、コンテキストメニューから → を選択します。すると、フォルダ内にリポジトリが作成され、使用できるようになります。 ボタンをクリックして、デフォルトの内部フォルダ構造も作成します。
ローカルリポジトリ機能はテストと評価には非常に便利ですが、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
が前に付いています:
このフォルダの外観は元のフォルダとは異なっていることに気付くでしょう。すべてのファイルの左下に緑色のチェックマークが付いています。これらはTortoiseSVNのステータスアイコンで、作業コピーにのみ存在します。緑色の状態は、ファイルがリポジトリのバージョンから変更されていないことを示します。
作業に取り掛かりましょう。Widget1-Dev
フォルダでファイルの編集を開始します。たとえば、Widget1.c
とReadMe.txt
を変更します。これらのファイルのアイコンオーバーレイが赤色に変わっていることに注目してください。これは、ローカルで変更が行われたことを示しています。
しかし、変更点は何でしょうか?変更されたファイルの1つを右クリックし、
→ を選択します。TortoiseSVNのファイル比較ツールが起動し、変更された行が正確に表示されます。
変更に問題がなければ、リポジトリを更新しましょう。この操作は、変更のコミット
と呼ばれます。Widget1-Dev
フォルダを右クリックし、 → を選択します。コミットダイアログには、変更されたファイルがチェックボックス付きで一覧表示されます。これらのファイルのサブセットのみを選択することもできますが、この場合は両方のファイルの変更をコミットします。変更内容を説明するメッセージを入力し、 をクリックします。進捗ダイアログに、リポジトリにアップロードされているファイルが表示され、完了です。
プロジェクトの開発が進むにつれて、新しいファイルを追加する必要があります。たとえば、Extras.c
に新しい機能を追加し、既存のMakefile
に参照を追加するとします。フォルダを右クリックし、 → を選択します。追加ダイアログに、バージョン管理されていないすべてのファイルが表示され、追加するファイルを選択できます。ファイルを追加する別の方法は、ファイル自体を右クリックして → を選択することです。
フォルダをコミットしようとすると、新しいファイルは追加済みと表示され、既存のファイルは変更済みと表示されます。変更されたファイルをダブルクリックすると、どのような変更が行われたかを正確に確認できます。
TortoiseSVNの最も便利な機能の1つは、ログダイアログです。これにより、ファイルまたはフォルダに加えられたすべてのコミットのリストと、入力した詳細なコミットメッセージが表示されます(提案どおりにコミットメッセージを入力しましたか?そうでない場合、これがなぜ重要なのかがわかるでしょう)。
さて、ここで少しずるをして、TortoiseSVNリポジトリのスクリーンショットを使用しました。
上部ペインには、コミットされたリビジョンのリストとコミットメッセージの先頭が表示されます。これらのリビジョンの1つを選択すると、中央ペインにはそのリビジョンの完全なログメッセージが表示され、下部ペインには変更されたファイルとフォルダのリストが表示されます。
これらの各ペインにはコンテキストメニューがあり、情報を活用するためのさまざまな方法が提供されています。下部ペインでファイルをダブルクリックすると、そのリビジョンで行われた変更を正確に確認できます。詳細については、「リビジョンログダイアログ」を参照してください。
すべてのリビジョン管理システムの機能の1つは、以前に行った変更を取り消せることです。ご想像のとおり、TortoiseSVNではこの機能に簡単にアクセスできます。
まだコミットしていない変更を取り除き、編集を開始する前の状態にファイルをリセットしたい場合は、
→ が便利です。これは変更を破棄し(念のためごみ箱に移動します)、最初に開始したコミット済みバージョンに戻します。変更の一部だけを取り除きたい場合は、TortoiseMergeを使用して差分を表示し、変更された行を選択的に元に戻すことができます。特定のリビジョンの影響を取り消したい場合は、ログダイアログから開始し、問題のリビジョンを見つけます。
→ を選択すると、これらの変更が取り消されます。