前回の記事ではSVKの基本的な操作方法を説明しました。最終回の今回はSubversionのリポジトリと連携しながら,SVKの使い方を説明します。
リモートのSubversionのリポジトリとして,本連載第2回目で説明した方法でSubversionのリポジトリを作成します。リポジトリを作成しただけではファイルがない状態です。今回はテスト用のデータを用意しました。ファイルをダウンロードしてc:\tmp\ディレクトリに展開してください。展開後,次のコマンドを実行して,Subversionのプロジェクトにインポートします。
C:\> cd c:\tmp\gihyo C:\tmp\gihyo> svn import http://localhost/svn/MyProject/ -m "test project" 認証領域: <http://localhost:80> trac 'Administrator' のパスワード: 認証領域: <http://localhost:80> trac ユーザ名: user1 'admin' のパスワード: ******** 追加しています trunk [中略] 追加しています tags リビジョン 1 をコミットしました。 C:\tmp\gihyo>
次にtrunkからテスト用のブランチを作成します。
C:\tmp\gihyo> svn copy http://localhost/svn/MyProject/trunk http://localhost/svn/MyProject/branches/remote
これまでの操作で図1のようなディレクトリ構造になります。
以上で準備ができました。これから,SVKのリモートリポジトリ管理を行ないます。今回のミッションでは,trunkでファイルの変更を行い,コミットします。次に,trunkの変更分をbranchにマージします。
リモートリポジトリをミラーリング
SVKで管理するときは,まず,リモートリポジトリをSVKのローカルにミラーリングします。次のようなコマンドの書式になります。
svk mirror SubversionのリポジトリのURL SVKのリポジトリ名
それでは,ミラーリングを行ないます。次のコマンドを実行してください。
C:\tmp\>svk mirror http://localhost/svn/MyProject //mirror Authentication realm: <http://localhost:80> trac Password for 'admin': Mirror initialized. Run svk sync //mirror/trunk to start mirroring. C:\tmp>
ここでは,//mirrorと言うパスにミラーリングしています。ここでは,SVKのファイルの保管場所のことをローカルリポジトリ,SVKリポジトリ内の各ディレクトリのことをパスと呼びます。複数のリモートリポジトリを管理する場合は,「//mirror/プロジェクト名」のようにパスを指定すると分りやすいです。
次のコマンドを実行することで,ミラーリングしているパスを確認できます。
C:\tmp>svk mirror --list Path Source ===================================================== //mirror http://localhost/svn/MyProject C:\tmp>
ミラーしたものは,現在のリモートリポジトリのスナップショットです。チームで開発している場合,あなたの作業中にもファイルを更新しているかもしれません。定期的に,ミラーリングしているローカルリポジトリをリモートリポジトリと同期する必要があります。次のコマンドを実行して,リモートリポジトリと同期してください。
C:\tmp>svk sync //mirror Syncing http://localhost/svn/MyProject Retrieving log information from 2 to 2 C:\tmp>
複数のリモートリポジトリを管理している場合は,次のコマンドを実行することで,すべてのリモートリポジトリと同期できます。
svk sync --all

