先日サーバにSubversion(SVN)を立てました。その際、次のような設定を行ったので、その備忘録になります。
  • ユーザー認証
  • リポジトリへのアクセス制御
  • コミットコメントの入力必須化
  • コミット後のコミットコメントの編集許可

前提条件

CentOSにてSubversionをApache httpdと連携させており、Subversion.confで次のような設定がされているものとします。
リポジトリのローカルパス
(SVNPath)
/var/svn/repos
ユーザーファイル
(AuthUserFile)
/var/svn/repos/conf/htpasswdz
アクセス制御
(AuthzSVNAccessFile)
/var/svn/repos/conf/authz


ユーザー認証

htpasswdコマンドでユーザーとパスワードを登録します。書式は次のような感じです。実行後、パスワード入力を求められるので、ユーザーに設定するパスワードを入力して下さい。
$ htpasswd /var/svn/repos/conf/htpasswdz hogeuser
なお、既存のユーザーを全て破棄して新規に登録する際は「-c」オプションを付けて下さい。また、ユーザーを削除するときは「-D」オプションを付けて下さい。

リポジトリのアクセス制御

リポジトリ直下に複数のフォルダを切って、それぞれにアクセス制御を行います。SVN管理者の好みですが、今回は「アクセスを許可するグループ(GroupHoge)にユーザーを追加し、フォルダ(ReposHoge)にはグループごとのアクセス権限を与える」としました。
/var/svn/repos/conf/authzをエディタで開き、次のように編集します。
[groups]
GroupHoge = hogeuser

[/ReposHoge]
@GroupHoge = rw
[groups]はグループの定義になり、書式は「グループ名 = 属するユーザー名」です。ユーザーが2名以上になる場合はカンマで区切ります。
[/ReposHoge]はここで指定したフォルダのアクセス権限定義になり、ユーザー、またはグループごとにアクセス権限を設定します。書式は「ユーザーorグループ = アクセス権限」になり、グループの場合はグループ名の先頭に「@」を付与します。また、アクセス権限は次の通りです。
読取専用r
書込専用w
読み書きrw


コミットコメントの入力必須化

何を更新したんじゃ(゚Д゚)ゴルァ!! と後から怒られないように、コミットコメントを入力必須にします。
やることは簡単で、/var/svn/repos/hooks配下にある「pre-commit.tmpl」を「pre-commit」にリネームするだけです。
$ cp /var/svn/repos/hooks/pre-commit.tmpl /var/svn/repos/hooks/pre-commit


コミット後のコミットコメントの編集許可

コミットコメント間違っちゃった(´・ω・`)ションボリ といううっかりさんを救済するために、コミットコメントを後から編集可能にします。
コミットコメントの入力必須化と同様、/var/svn/repos/hooks配下にある「pre-revprop-change.tmpl」を「pre-revprop-change」にリネームするだけです。
$ cp /var/svn/repos/hooks/pre-revprop-change.tmpl /var/svn/repos/hooks/pre-revprop-change


謝辞

以下のサイトを参考にさせて頂きました。この場を借りて感謝申し上げます。