Hatena::ブログ(Diary)

unnecessary words このページをアンテナに追加 RSSフィード

2007-10-28

複数svnリポジトリのつくり方

複数のSVNリポジトリをhttp経由でアクセス、管理する方法まとめ。

CentOS5、subversion1.4.2、Apache2.2.3 環境で作成。

単一リポジトリで、httpが必要ないならこっち参照。


作成するリポジトリ

以下にある3つのリポジトリを作ってみます。

アカウントは自分用、開発者用(=group1)を作成します。

アカウントのない人でもtestリポジトリアクセス可能とします。


・myリポジトリ

自分専用の設定ファイルを保存する。.vimrc、.zshrcなどなど。

自分では読み書き可能。group1も読み込みは可能。それ以外の人は読み書き不可。


・devリポジトリ

皆で何かを開発する為に使用する。

自分は読み書き可能。group1も読み書き可能。それ以外の人は読み書き不可。


・testリポジトリ

SVN練習用のリポジトリSVN未体験、不慣れな人の為に。

全ての人が読み書き可能。


リポジトリパスアクセス制限
my/home/svnadmin/svn/my自分:rw, group1:r, それ以外:アクセス禁止
dev/home/svnadmin/svn/dev自分:rw, group1:rw, それ以外:アクセス禁止
test/home/svnadmin/svn/test全て:rw

(r...読み込み、w...書き込み)


必要なプログラムインストールする

# yum install httpd
# yum install subversion
# yum install mod_dav_svn

リポジトリを作成

リポジトリを作成し、Apacheが読み書きできるようにする。

# mkdir -p /home/svnadmin/svn
# svnadmin create /home/svnadmin/svn/my
# svnadmin create /home/svnadmin/svn/dev
# svnadmin create /home/svnadmin/svn/test
# chown -R apache:apache /home/svnadmin/svn/my/
# chown -R apache:apache /home/svnadmin/svn/dev/
# chown -R apache:apache /home/svnadmin/svn/test/

Apacheの設定

/etc/httpd/conf.d/subversion.conf を以下のように設定する。

SVNParentPathには、リポジトリの親ディレクトリを指定する。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
  DAV svn
  SVNListParentPath on
  SVNParentPath /home/svnadmin/svn #リポジトリの親ディレクトリ

  Satisfy Any #アカウントのない人でもアクセス可能にする
  AuthType Basic
  AuthName "Authorization Realm"
  AuthUserFile /home/svnadmin/svnconf/htpasswd #ユーザアカウント設定ファイル
  AuthzSVNAccessFile /home/svnadmin/svnconf/svn-access #アクセス制限設定ファイル
  Require valid-user

</Location>

アカウント作成

設定ファイルを置くディレクトリを作成する。

# mkdir -p  /home/svnadmin/svnconf

自分のアカウント(hayori)、開発者アカウント(developer1, developer2)を作成する。

# htpasswd -c /home/svnadmin/svnconf/htpasswd hayori
# htpasswd /home/svnadmin/svnconf/htpasswd developer1
# htpasswd /home/svnadmin/svnconf/htpasswd developer2

アクセス制限ファイルを作成

/home/svnadmin/svnconf/svn-access

[groups]
me = hayori
group1 = developer1,developer2
[/]
* = r
[my:/]
* =
@me = rw
@group1 = r
[dev:/]
* =
@me = rw
@group1 = rw
[test:/]
* = rw

"* = "は全ての人、グループは先頭に@をつける。


Apache再起動

# /etc/init.d/httpd restart 

動作確認

以下のアドレスに、ブラウザSVNクライアントで意図通りにアクセスできるか確認する。

http://localhost/svn/my

http://localhost/svn/dev

http://localhost/svn/test


Subversionの使い方

使い方は、以下の本一冊読めば事足ります。薄めで1日あれば読める。オススメです。

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

SVNクライアントWindowsならTortoiseSVNがオススメ。

TortoiseSVNのインストールと設定

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証