Subversion+svkでらくらく分散リポジトリ

第4回 SVKでリポジトリ管理実践編

この記事を読むのに必要な時間:およそ 5 分

前回の記事では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のようなディレクトリ構造になります。

図1 テスト用Subversionリポジトリのディレクトリ構造

図1 テスト用Subversionリポジトリのディレクトリ構造

以上で準備ができました。これから,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

著者プロフィール

大谷弘喜(おおたにひろき)

アリエルネットワーク株式会社所属。P2PアプリケーションやWebアプリケーションの設計,開発。Python大好き。

コメント

コメントの記入