SVK

Perl で書かれた『分散バージョン管理システム』

初期化

% svk depotmap --init

~/.svk に SVK を利用する際に必要な情報が作成される。

~/.svk/local が svn リポジトリ。

ミラー指定

格納先になる DEPOTPATH とミラーしたい URL を引数に与える。

% svk mirror DEPOTPATH URL

SVK では異なるリポジトリを1つのリポジトリにまとめて管理する。1度ミラーしたリポジトリに対する操作では、実際のリポジトリを意識する必要がない。

DEPOTPATH は、”//MODULE_NAME”として指定する。

同期

ミラー指定後にミラー指定したリポジトリを取り込む。

% svk sync DEPOTPATH

同期後のリビジョン番号は、SVK で独自に持つ事になる。また、リビジョン番号 1 は SVK によって使われる。

HEAD 以前をミラーする必要がない場合、”–skipto HEAD” とする事で無視する事が出来る。

% svk sync DEPOTPATH --skipto HEAD

SVK リポジトリへの操作

Local branch

% svk cp DEPOTPATH_MIRROR DEPOTPATH_LOCAL

SVK で作業する場合、ミラーリポジトリに対してコミットせず、ローカルブランチを作ってからそこにコミットする模様。

作業コピー

% svk checkout DEPOTPATH WORKING_COPY_PATH
% svk update

変更

% svk add
% svk delete
% svk copy
% svk move

検査

% svk status
% svk diff
% svk revert

マージ

% svk update
% svk resolved

コミット

% svk commit

実際のリポジトリ

ミラー元の修正を手元にマージ

% svk pull

手元の修正をミラー元にマージ

% svk push

svk のヘッダを svn のログに含めない

% svk push --verbatim

手元の複数 commit を1回のコミットとしてミラー元にマージ

% svk push --lump --verbatim

その他

DEPOTMAP の切り替え

通常、SVK リポジトリの実体は ~/.svk/local (複数の(リモート)リポジトリを1つのローカルリポジトリで管理する)。これを、任意のパスに置き換えたい場合がある。

まず、空の SVN リポジトリを作成する。

% svnadmin create PATH

“–relocate” を利用してミラーのルートを先に作成した SVN リポジトリに切り替える。

% svk depotmap --relocate // PATH

ミラーのルートを切り替えた後は、ミラー指定と同期を行う。

作業の流れ

  1. 初期化
  2. ミラー指定
  3. 同期
  4. ローカルブランチ作成
  5. チェックアウト

上記流れの具体例をあげる。(~/.svk/local がローカルリポジトリ)

% svk depotmap --init
% svk mirror //mirror svn://svn.hoge.com/module/trunk
% svk sync //mirror
% svk cp //mirror //local

適当なディレクトリを用意してチェックアウトする。

% svk co //local hoge/

“svn://svn.foo.com/module2/trunk“というモジュールを別のローカルリポジトリにミラーする。

/tmp/test が新しいローカルリポジトリ。

% svnadmin create /tmp/test
% svk depotmap --relocate // /tmp/test
% svk mirror //foo svn://svn.foo.com/module/trunk
% svk sync //foo

SVK を使って作業する際は、DEPOTMAP に注意する。

リポジトリ分割

SVK はローカルに独自のリポジトリを持つ。これを利用して、1つのリポジトリを複数のリポジトリに分割する事が出来る。

履歴情報は保持されるが、リビジョン番号は保持されない事に注意する。

% svnadmin create /var/svn/hoge
% svk depotmap --relocate // /var/svn/hoge
% svk mirror //hoge svn://svn.repo.com/trunk/hoge
% svk sync //hoge

以上をモジュールの数だけ繰り返す事で、リポジトリから抽出したいモジュールリポジトリにする事が出来る。

Subversion で用意されている方法も合わせて掲載しておく。

  1. /var/svn/repo を dump
  2. リポジトリ内のモジュール hoge のみを抽出
  3. hoge 用のリポジトリを用意
  4. 旧リポジトリから抽出した dump ファイルを読み込む
% svnadmin dump /var/svn/repo > dumpfile
% cat dumpfile | svndumpfilter include hoge > hoge-dumpfile
% svnadmin create /var/svn/hoge
% svnadmin load /var/svn/hoge < hoge-dumpfile

Windows 用 SVK

上記より Win32 Installer をダウンロードしてインストール。

リポジトリはホームディレクトリ以下に作られる。

$HOME/.svk/local

TortoiseSVN から checkout する場合、”file:///”を使ってアクセス可能らしい。

 
koshigoewiki/開発環境/svk.txt · 最終更新: 2006/04/06 23:14 by koshigoebushou
 
Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki