Subversion

Subversion』 CVSの後継として開発されたバージョン管理ツール。

メリット
1.内部データをUTF-8で保持しているため、日本語のファイル、
日本語フォルダも問題なく処理出来る。

2.ApacheのWebDAV機能を使ってリポジトリが公開出来る。

3.windows環境のコマンドラインツールも本語でメッセージが
表示され、エクスプローラのシェル拡張機能である。

Subversionリポジトリ作成方法

リポジトリの作成には、svnadminコマンドを使う。

/var/lib/svn/hogeディレクトリへ、fsfs形式のリポジトリを作成する場合は、下記のようにコマンドを入力します。

svnadmin create --fs-type fsfs /var/lib/svn/hoge

Apacheからアクセスするように設定する場合、個別のリポジトリに対してアクセス設定をするのではなく、複数のリポジトリを配下に置くディレクトリを公開する

例えば/var/lib/svnディレクトリ以下にhoge1、hoge2というリポジトリがある時、hoge1、hoge2それぞれに設定を行うのではなく、/var/lib/svn以下のフォルダをまとめて公開すると言う設定。

また、合わせて読み取りは全ユーザに対して権限を与え、更新操作についてはベーシック認証を使い認証を行う。

Apacheの設定ファイル(httpd.conf)に下記を記述。
このとき、SubversionリポジトリディレクトリへApacheのユーザが書き込み権限を持っている用設定する事。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn>
  DAV svn
  SVNParentPath /var/lib/svn

  # our access control policy
  AuthzSVNAccessFile /var/lib/svn/.htsvn_access

  # try anonymous access first, resort to real
  # authentication if necessary.
  Satisfy Any
  Require valid-user

  # how to authenticate a user
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /var/lib/svn/.htsvn_user
</Location>

次に、htpasswd コマンドを使ってベーシック認証用の/var/lib/svn/.svn_userファイルを作成。

Subversionのアクセス権設定ファイル.htsvn_accessファイルを以下の用に記述。
ここでは、全てのリポジトリに対し全ユーザに読み取り権限を与え、testリポジトリにはdevelopersグループに登録されたユーザおよび、user3のユーザに読み書き権限を与える。

[groups]
developers = user1, user2

[/]
* = r

[test:/]
user3 = rw
@developers = rw