SVNリポジトリの作成

今回は、Subversionサーバー側でSVNリポジトリを作成する方法について見ていきます。
SVNリポジトリの作成はsvnadmin createコマンドで行います。ここでは、「/home/svn」ディレクトリ配下にリポジトリ「java_repo01」を作成します。

# svnadmin create /home/svn/java_repo01

svnserveの設定

作成したリポジトリ下のconfディレクトリに各種設定ファイルが配置されます。

# cd /home/svn/java_repo01/conf/
conf# ll
-rw-r--r-- 1 root root 1080 Mar  4 18:53 authz
-rw-r--r-- 1 root root  309 Mar  4 18:53 passwd
-rw-r--r-- 1 root root 2279 Mar  4 18:53 svnserve.conf

svnserveは各リポジトリの上記設定ファイルにしたがって動作します。

デフォルトの設定では、読み取り専用でしかリポジトリアクセスできないため、認証の設定を行い、認証を通過したアクセスに対しては書き込み権限を与えるように設定します。

svnserveの認証はリポジトリ下のconfディレクトリにあるsvnserve.confファイルで設定します。

conf# vi svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd 
authz-db = authz
項目 意味
anon-access 匿名アクセスを許可するかどうかを設定する。(read,write,none)
auth-access 認証されたユーザーのアクセス権を設定する。(read,write,none)
password-db ユーザーとパスワードが記述されたファイルへのパスを指定する。
authz-db ディレクトリ・ファイル単位(リポジトリ内)のアクセス権が記述されたファイルへのパスを指定する。

「anon-access」と「auth-access」で設定できるアクセス権には以下の種類があります。

none アクセスを許可しない。
read リポジトリへの読み取りのみ許可する。
write リポジトリへの読み書きを許可する。

パスワードファイルの設定

「password-db」で指定したファイルにリポジトリへのアクセスを許可するユーザーとパスワードを記述します。

上記の例では「passwd」ファイルに以下の形式で編集します。

[users]
ユーザー = パスワード

ここでは以下のように編集します。

conf# vi passwd
[users]
testuser = 123qwe

ここでは割愛しますが、authzファイルを編集することで、リポジトリ内のディレクトリやファイルに対して、ディレクトリもしくはファイル単位でアクセス権を設定することも可能です。その単位での設定が必要なければ、authzファイルの編集は不要です。

svnserveの起動確認

クライアントがsvnプロトコルを使用してリポジトリへアクセスするためにはサーバー側でsvnserveを起動させておく必要があります。

起動確認は以下コマンドで行えます。

# service svnserve status
svnserve (pid  4857) is running...

「running」になっていなければ以下のコマンドでsvnserveを起動します。

# service svnserve start