7. Subversion リポジトリの作成

この環境では、Subversion リポジトリの作成には、Subversion を使用する方法と、SVK を使用する方法があります。ここでは、Subversion を使用してリポジトリを作成して SVK の depotmap に割り当てます。
Subversionリポジトリを作成するのは簡単で、TortoiseSVN をインストールしていれば、空フォルダを右クリックして「ここにリポジトリを作成」を選ぶだけですし、コマンドラインでも svnadmin create を実行するだけです。

PS temp> mkdir D:\repos\project1
PS temp> svnadmin create D:\repos\project1

リポジトリの作成時に使用できるオプションはいくつかありますが、ほぼ全ての場合でオプションの指定は必要ないはずです。次に SVK の depotmap の設定を行います。

PS temp> $env:SVKROOT = "D:\etc\svk"
PS temp> svk depotmap // D:\repos\project1

 または

PS temp> $env:SVKROOT = "D:\etc\svk"
PS temp> svk depotmap /proj1/ D:\repos\project1

環境変数 SVKROOT は SVK の管理ファイル*1を置く場所です。svk コマンドを実行する場合には常に設定しておく必要があり、省略するとホームディレクトリに .svk という名前で作成されます。*2 SVK は複数のリポジトリを管理することができるようになっており、各リポジトリに名前をつけて使用します。depotmap コマンドは、*3リポジトリに名前をつけるコマンドで

svk depotmap /{NAME}/ {PATH}

と使用します。上記の例では NAME に空文字列を指定し、作成した Subversion リポジトリを設定しています。SVK では慣例的に最初のローカル リポジトリは名前なしで登録するようになっていますが、わかりにく場合は2例目のように適当に名前をつけてもかまいません。*4また、指定された PATH にリポジトリが存在しない場合、Subversion リポジトリを作成するか聞いてきます。(6.) の段階でリポジトリの作成を SVK に任せるという選択をした場合、Subversion 側でリポジトリを作成しないで svk depotmap を呼び出すことで、SVK 側でリポジトリを作成することができます。*5

[TIPS]
svk depot --list                        ... 登録されている名前とリポジトリを一覧表示
svk depot --detach /{NAME}/             ... 登録を解除する(リポジトリは削除されません)
svk depot --relocate /{NAME}/ {PATH}    ... 登録先を PATH に変更する

*1:config と cache という2つの名前が SVK で使われます。

*2:Windows の場合、C:\Users\{USERNAME}\.svk\ や C:\Document and Settings\{USERNAME}\.svk\ などになります。

*3:省略形 depot

*4:1つのリポジトリを2つの名前で登録することもできるので、私は全てのリポジトリに名前をつけておいて、頻繁に作業することがある場合だけ無名で二重登録しています。

*5:通常は SVK インストール直後に svk depot -i を実行します。これは、svk depotmap // %SVKROOT%\local を実行して、リポジトリの作成に対して yes と答えるのと同じ意味になります。Windows 環境であれば、C:\Users\{USERNAME}\.svk\local に Subversion リポジトリが作成され、名前なしでアクセスできるようになります。