今回はSubversionの話。
apacheとWebDAVでやる。
例えば、こんなバーチャルドメインを作ってSVN用にしたとする。
https://svn.xxx.jp/
個々リポジトリのURLはこんな感じになるのが理想。
https://svn.xxx.jp/project1/{trunk,tags,branches}
https://svn.xxx.jp/project2/{trunk,tags,branches}
https://svn.xxx.jp/project3/{trunk,tags,branches}
インストール
yum install subversion yum install mod_dav_svn
設定
ここを参考に。
ApacheでSVNのアクセス制御とリポジトリ一覧表示を同時にやる - ある異邦人の技術メモ
そのままの設定じゃ動かなかったので、こんな設定にしてみた。
.authzは書き方チェックもかねて。
httpd.conf
<Location /> DAV svn SVNListParentPath on SVNParentPath /var/www/virtual/svn SVNAutoversioning on AuthType Basic AuthName "Subversion Repository" AuthUserFile /var/www/virtual/svn/.htpasswd Require valid-user </Location> <LocationMatch /.+> AuthzSVNAccessFile /var/www/virtual/svn/.authz Satisfy Any </LocationMatch>
.authz
[groups] root = xxx [/] @root = rw [svn-test:/] * = @root = rw [new-repo:/] guest =
リポジトリルートをチェックアウトできない
new-repoってリポジトリを作った場合。
最後にちゃんと"/"をつけてCOしようとしても、こうなっちゃう。
あんまりSVN使った事ないから解らないけど、もしかしてこれが正しい動きなのかな…。
svn: リポジトリは恒久的に 'http://svn.xxx.jp/new-repo/' へ移動しました。relocate (参照 URL の変更) を実行してください
file://で作ってから、/new-repo/trunkをCO。
今のところこれしか思いつかない。
どうしたものか…。
[root@eth0 ~]# svn mkdir -m "create trunk" file:///var/www/virtual/svn/new-repo/trunk リビジョン 1 をコミットしました。 [root@eth0 ~]# svn mkdir -m "create tags" file:///var/www/virtual/svn/new-repo/tags リビジョン 2 をコミットしました。 [root@eth0 ~]# svn mkdir -m "create branches" file:///var/www/virtual/svn/new-repo/branches リビジョン 3 をコミットしました。
環境
[root@eth0 ~]# cat /etc/redhat-release CentOS release 5.3 (Final) [root@eth0 ~]# httpd -version Server version: Apache/2.2.3 Server built: Jan 21 2009 22:01:41 [root@eth0 ~]# svn --version svn, バージョン 1.6.4 (r38063) コンパイル日時: Aug 12 2009, 02:42:28 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.tigris.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). 以下のリポジトリアクセス (RA) モジュールが利用できます: * ra_neon : Neon を利用して WebDAV (DeltaV) プロトコルでリポジトリにアクセスするモジュール。 - 'http' スキームを操作します - 'https' スキームを操作します * ra_svn : svn ネットワークプロトコルを使ってリポジトリにアクセスするモジュール。 - Cyrus SASL 認証を併用 - 'svn' スキームを操作します * ra_local : ローカルディスク上のリポジトリにアクセスするモジュール。 - 'file' スキームを操作します