TortoiseSVN の基礎勉強 〜TortoiseSVN によるバージョン管理を使う〜

はじめに

ようこそ、バージョン管理システム「TortoiseSVN」の基礎勉強です。TortoiseSVN は、Subversion のクライアントで、Windowsのシェルエクステンションとして機能します。専用のGUIを備えており、CUI の Subversion より、直感的で簡単に扱うことが出来ます。Subversion はクライアント/サーバ型の集中型バージョン管理システムです。TortoiseSVN はサーバ(Subversion)に対するクライアントとなります。

「TortoiseSVN の基礎勉強」では、Windows 7 環境で TortoiseSVN の基本的な使い方を自分のマシンで動作させます。 TortoiseSVN はこのチュートリアルで説明している以外にも多くの機能を備えたパワフルなバージョン管理システムです。使いこなすためには文章を読むだけではなく実際に試すことがとても重要です。

このドキュメントにならってチュートリアルを実行することで、基本的な TortoiseSVN の使い方を学習することができます。

このチュートリアルでは、TortoiseSVN の日本語版(TortoiseSVN-1.7.12.24070)を利用して進めていきます。

レッスン 1. インストール

最初に TortoiseSVN が利用できるように環境を作ります。 TortoiseSVN のサイトからインストール用のバイナリ(インストーラー)をダウンロードします。チュートリアルで利用するバージョンは、32bit版です。64bit版と32bit版がありますのでダウンロードするファイルに注意してください。

  • TortoiseSVN-1.7.12.24070-win32-svn-1.7.9.msi (日付: 2013-04-04, サイズ: 14.0 MB)

をダウンロードしてください。 2013/05/21 現在、[TortoiseSVN-1.7.12.24070-win32-svn-1.7.9.msi (日付: 2013-04-04, サイズ: 14.0 MB) ]が最新版のバイナリファイルになります。 日本語で利用したいので言語パックも一緒にダウンロードしてください。 TortoiseSVNのダウンロードページ下部に「Language packs」から「Japanese」の「Setup」をダウンロードします。ここでも32bit/64bitは間違えないように注意してください。

ダウンロードした TortoiseSVN インストールファイルをクリックしてウィザードに従って「次へ」をクリックすればインストールは完了します。続けて言語パック(LanguagePack?_1.7.12.24070-win32-ja.msi)をインストールしてください。

これでインストールは完了です。 適当なフォルダを右クリックすると TortoiseSVN のメニューが表示されると思います。

レッスン 2. 動作確認

インストールが完了したら動作の確認をしてみましょう。 適当なフォルダを右クリックして、メニューを開きます。

/bootcamp/wp-content/themes/_btcp/images/svn02.png
/bootcamp/wp-content/themes/_btcp/images/svn00.png

次から早速 TortoiseSVN をつかったバージョン管理を行います。

ノート

通常、TortoiseSVN と 日本語パックをインストールするだけで日本語設定になります。日本語が表示されない場合、フォルダを右クリックして「TortoiseSVN」-> 「Setting」->「General」から「Language」プルダウンから日本語を選択してください。

レッスン 3. リポジトリ用のディレクトリを作成

これで TortoiseSVN が利用できるようになりました。まだ開発に入ることはできません。 TortoiseSVN でバージョン管理を行うためにリポジトリを作成します。

リポジトリ: Subversion で管理されるソースコードやファイルを格納する場所のことです。この格納場所を作成しなければ開発に進むことはできません。通常リポジトリの作成作業は最初の1回だけで良いです。

注意点

  • Subversion の基礎勉強で作成したリポジトリを利用しても良いでしょう。
  • すでにSubversionのリポジトリがある場合、このレッスンは飛ばしてください。
  • TortoiseSVN はリポジトリ作成機能があります。このチュートリアルではリポジトリを新規作成します。

それでは、リポジトリを作成します。今回は以下の構成にします。 リポジトリ用: c:worktortoise-repo

「tortoise-repo」フォルダを作成します。 tortoise-repo を右クリックして TotroiseSVN メニューの「ここにリポジトリを作成(Y)」をクリックします。 すぐにリポジトリは作成されメッセージボックスが表示されます。

/bootcamp/wp-content/themes/_btcp/images/svn01.png

ここで、「フォルダー構造を作成」を押下してください。Subversion をつかったバージョン管理では標準的な開発で利用される作法があります。この作法はソースコードの管理・運用方法にフォルダ構造をつかって役割を分けています。

  • trunk … 最新のソースコードを格納、開発は trunk で行われます
  • branches … 特定のリビジョンでリリースされる場合、リリース前で大きな修正はしないがバグ対応として利用など
  • tags … リリース時などソースコードのスナップショットとして利用

「フォルダー構造を作成」をクリックすると、[trunk][tags][branches]フォルダをリポジトリに追加します。

次に作成したリポジトリを「リポジトリビューアー」で確認します。 「リポジトリブラウザーで開く」または、「tortoise-repo」を右クリックして、リポジトリブラウザーを開いてください。

/bootcamp/wp-content/themes/_btcp/images/svn03.png

レッスン 4. チェックアウト

チェックアウトは、リポジトリに登録されたソースコードを開発環境(自分の環境)にもってくることで開発作業を進めます。自分の環境にコピーを取得(今後、作業コピーといいます)するためのコマンドをチェックアウトと言います。

それでは、実際にプロジェクト用のフォルダを作成して、作業コピーをチェックアウトします。

作業用のフォルダ「project2」を作成してください。

/bootcamp/wp-content/themes/_btcp/images/svn05.png

次に作成したフォルダを開発用のフォルダで利用します。ここにリポジトリから作業コピーをチェックアウトします。

/bootcamp/wp-content/themes/_btcp/images/svn06.png

チェックアウトの設定を確認します。

  • リポジトリのURL:file:///C:/work/tortoise-repo
  • チェックアウト先のディレクトリ:C:\work\project2
  • リビジョン: 最新リビジョン(HEAD)

/bootcamp/wp-content/themes/_btcp/images/svn07.png

「OK」を押下してチェックアウトを実行します。

/bootcamp/wp-content/themes/_btcp/images/svn08.png

リビジョン HEAD の ``file:///C:/work/tortoise-repo`` をチェックアウト, 再帰的, 外部を含む
C:\work\project2
C:\work\project2\branches
C:\work\project2\tags
C:\work\project2\trunk
リビジョン 1 になりました

レッスン 5. 作業ディレクトリで作業開始

チェックアウトが完了しました。これからこのチェックアウトされた作業コピーフォルダで開発を進めていくことになります。 c:\work\project2 を見てみます。エクスプローラーから見るとフォルダに重なったチェックマークアイコンが付いているのが分かります。

/bootcamp/wp-content/themes/_btcp/images/svn09.png

これは、TortoiseSVNのオーバーレイ表示機能です。アイコンの表示はリポジトリと作業コピーの状態を表しています。アイコンには以下の状態があります。ここではどのような状態を表示しているアイコンがあるのかを理解しておくだけでよいです。

/bootcamp/wp-content/themes/_btcp/images/svn10.png

  • 通常
  • 変更
  • 競合
  • 読み取り専用
  • 削除
  • ロック
  • 追加
  • 無視
  • バージョン管理外

このアイコンはリポジトリと作業コピーの差分があることを意味しています。

警告

作業コピーが通常以外のアイコンの場合、作業コピーに何かしらの変更が加えられていることを意味します。この変更をリポジトリに反映する作業「コミット」を行うことでリポジトリと作業コピーが同期します。

レッスン 6. 新しいファイルを作成・追加

リポジトリから作業コピーを取得しました。次にファイルを追加してみます。 Subversion の作法に従って、「trunk」フォルダで開発作業を進めます。 使い慣れたエディタを使って、以下のファイルを作成します。 [tutorial.html]を作成します。


<html>
 <body>

 <h1>Subversion チュートリアル</h1>
 <ol>
  <li>リポジトリ作成</li>
  <li>作業コピー作成</li>
  <li>開発作業</li>
  <li>コミット</li>
 </ol>

 </body>
</html>

/bootcamp/wp-content/themes/_btcp/images/svn11.png

リポジトリにファイルを追加する操作を行います。[tutorial.html]を右クリックして TortoiseSVN メニューから「追加」をクリックします。

/bootcamp/wp-content/themes/_btcp/images/svn12.png

追加することによって、[tutorial.html]のアイコンに「+」が追加されています。

/bootcamp/wp-content/themes/_btcp/images/svn13.png

エクスプローラーのファイルアイコンの状態が「+」(追加)に変わっています。これで新しいファイルを作業コピーで追加し、リポジトリに反映する準備が出来ました。 これだけでは、リポジトリに反映していません。コミットをしなければリポジトリに反映されません。

それでは、コミットを行います。コミットも TortoiseSVN メニューから操作します。 [tutorial.html]ファイル、またはフォルダの空白部分を右クリックしてください。「SVN コミット」が表示されますので選択します。

コミット用のウィンドウが立ち上がりますので、コミット時の変更内容を入力します。

/bootcamp/wp-content/themes/_btcp/images/svn15.png

「OK」を押下すると、作業コピーで実行した開発作業がリポジトリに反映されます。

/bootcamp/wp-content/themes/_btcp/images/svn16.png

他のメンバーがリポジトリから作業コピーをチェックアウトした場合、tutorial.html が追加された状態でチェックアウトされます。

/bootcamp/wp-content/themes/_btcp/images/svn17.png

警告

コミットとは、作業コピーの変更した内容をリポジトリに送ります。コミットして初めてリポジトリに反映されます。

レッスン 7. 新しいディレクトリを作成・追加

ディレクトリの追加やディレクトリに含まれるファイル群の追加をやっていきます。 やり方はファイルの追加と同じです。

フォルダA,BとBフォルダに2つのテキストファイルを作成します。

C:\work\project2\trunk>mkdir A
C:\work\project2\trunk>mkdir B
C:\work\project2\trunk>echo hello world! > B\hello.txt
C:\work\project2\trunk>echo こんにちは > B\こんにちは.txt

/bootcamp/wp-content/themes/_btcp/images/svn18.png

フォルダAとフォルダBをリポジトリに追加するコマンドを実行します。フォルダBにはテキストファイルが含まれていることに注意してください。/project2/trunk をエクスプローラーで開いて、「A」「B」をそれぞれ右クリックして「追加」を実行します。

/bootcamp/wp-content/themes/_btcp/images/svn19.png

ファイルを追加したときと同じようにコミットします。コミット時のコメントは後で見て分かりやすいように変更点や修正内容を書くようにするべきです。

/bootcamp/wp-content/themes/_btcp/images/svn20.png

レッスン 8. ファイルを更新

それでは、ファイルの中身を編集してバージョン管理システムの機能を見ていきましょう。 テキストエディタで trunk/tutorial.html を開きます。 2行追加します。


<li>コミット時は更新内容をログとして記述</li>
<li>バージョン管理システムの更新</li>

<html>
<body>

<h1>Subversion チュートリアル</h1>
<ol>
 <li>リポジトリ作成</li>
 <li>作業コピー作成</li>
 <li>開発作業</li>
 <li>コミット</li>
 <li>コミット時は更新内容をログとして記述</li>
 <li>バージョン管理システムの更新</li>
</ol>

</body>
</html>

ファイルを保存して閉じてください。 変更したファイルに表示されるオーバーレイアイコンが変わっていると思います。

/bootcamp/wp-content/themes/_btcp/images/svn22.png

編集したファイルに「!」というアイコンが付いています。これは作業コピー内のファイルに変更があったことを示しています。続いてコミットを行います。

もう一度同じファイルに以下の行を追加します。


<li>ファイルの更新</li>

今編集しているファイルはリポジトリのファイルより新しい修正が追加されています。コミットする前にその内容を確認しています。「!」アイコンの付いた tutorial.html を右クリックして TortoiseSVN メニューから「差分を表示」を選択します。

/bootcamp/wp-content/themes/_btcp/images/svn23.png

差分表示ツール[TortoiseMerge?]が起動し、ファイルの差分を表示します。

/bootcamp/wp-content/themes/_btcp/images/svn25.png

修正内容を確認したらコミットします。

警告

TortoiseMerge? で差分表示が可能ですが、外部ツールを差分表示に利用することが可能です。よく使われるツールとして、WinMerge(日本語版) があります。WinMerge を利用する場合、インストール後に TortoiseSVN の設定 -> 外部プログラム -> 差分ビューアーを変更してください。

レッスン 9. ファイルを移動

ファイルの移動はエクスプローラーを利用しておこなうとリポジトリと作業コピーの差異が生まれます。これはディレクトリが不完全になることを意味しています。リポジトリと作業コピーは同期されていることが必要です。 例えば、/project2/trunk/tutorial.html をエクスプローラーで /project2 配下に移動した場合、どうなるか見てみます。エクスプローラーからファイルをドラッグ&ドロップします。

/bootcamp/wp-content/themes/_btcp/images/svn26.png

ファイルをエクスプローラーで移動したことで、/project2 フォルダに「!」アイコンが付きました。 これでは、リポジトリから見たとき、元の場所(/project2/trunk/tutorial.html)のファイルが行方不明になり、移動先の場所(/project2/tutorial.html)が新しく作成されている、不明ファイル。となります。

ファイルの移動は以下のように行います。 移動元のファイルを右クリックしたまま、移動先のフォルダにドラッグ&ドロップします。(右クリックで操作する)TortoiseSVN のメニューが表示されるので、「SVN バージョン管理下の項目をここに移動」を選択します。

/bootcamp/wp-content/themes/_btcp/images/svn27.png

これで、ファイルの移動が正常に出来ました。 この操作もコミットしなければリポジトリに反映されないことに注意してください。

/bootcamp/wp-content/themes/_btcp/images/svn28.png
/bootcamp/wp-content/themes/_btcp/images/svn29.png

このチュートリアルでは、/project2 フォルダ内で右クリックし、TortoiseSVN メニューから「変更の取消し」を実行します。

警告

ファイルの移動は svn copy の後に svn delete を実行することと同じです。

レッスン 10. ファイル名を変更

ファイル名の変更もファイルの移動と同じでエクスプローラーではなく、TortoiseSVN メニューで変更する必要があります。

/bootcamp/wp-content/themes/_btcp/images/svn30.png

コミットは必要ですので忘れずに実行します。

レッスン 11. ファイルを削除

ファイルの削除を実行します。 この操作もTortoiseSVN メニューから実行後にコミットをしてください。。 ファイルの移動、ファイル名の変更、ファイルの削除はバージョン管理されているファイル群のみ使うことができます。

/bootcamp/wp-content/themes/_btcp/images/svn31.png

レッスン 12. 履歴を確認

最後にこれまでの変更履歴を確認してみます。 履歴を確認する方法は、TortoiseSVN メニューの「ログを表示」を選択します。

/bootcamp/wp-content/themes/_btcp/images/svn32.png

これまでコミットした変更内容と変更したファイル一覧が表示されます。 変更履歴毎に右クリックすると差分を表示したり、取消しを行ったりすることができます。

/bootcamp/wp-content/themes/_btcp/images/svn33.png

最後に

これで TortoiseSVN の基本学習用チュートリアルは終了します。 よく使うコマンドを中心に説明していますが、チームでの複数メンバーによる開発や Subversion / TortoiseSVN の高度な機能については説明していません。

このチュートリアルはいったんこれで終了します。 さて、次は何をすればよいでしょうか? バージョン管理のアプリケーションを理解する一番の近道は実際に使ってみることです。 あなたの開発で利用しはじめてください。あなたが所属する会社やチームでバージョン管理を使っていなかったり、別のツールを使っている場合があるかもしれません。そんなときでも、ひとりで Subversion / TortoiseSVN を使うことは可能です。

さらに、ネットには数多くの良質なコンテンツがたくさんあります。Subversion / TortoiseSVN の専門書籍も多く出版されています。ぜひ参照して快適な開発ライフを。

参考資料


バージョン管理サービス・プロジェクト管理サービスの「tracpath(トラックパス)」では、
ユーザー5名、リポジトリ数3つまで、無料で利用可能です。

学んだ知識を活かして、さっそく実務でも使って見ましょう。
エンタープライズ利用が前提のASPサービスなので、セキュリティも強固です。