Top / Subversion / TIPS集

複数のリポジトリを公開したい

サーバ上に

/opt/svnroot1
/opt/svnroot2

というSVNのリポジトリ*1があるとします。

<Location "/svn">
  DAV svn
  SVNParentPath /opt
</Location>

とhttpd.confに書いておくことで、

http://[サーバ名]/svn/svnroot1/
http://[サーバ名]/svn/svnroot2/

というURLでそれぞれのリポジトリにアクセス可能です。

ディレクトリごとにアクセス制御する

あるサーバ内で複数のリポジトリやtrunk,branches,tagsなど複数のディレクトリをあつかっているときの、ディレクトリごとのアクセス制御方法です。

httpd.confで

<Location "/svn">
  DAV svn
  SVNParentPath /opt
  AuthzSVNAccessFile /opt/hogehoge/dav_svn.authz
  AuthName "Subversion repository"
  AuthType Basic
  Require valid-user
  AuthUserFile /opt/hogehoge/.htpasswd
</Location>

などと書いておき、dav_svn.authz で

[groups]
developer = dev1

[/trunk]
@developer=r

としておきます。

そうすると

http://[サーバ名]/svn/svnroot/trunk/     :dev1で読み可能
http://[サーバ名]/svn/svnroot/branches/  :読み書き不可
http://[サーバ名]/svn/svnroot/tags/      :読み書き不可

となります。

[/trunk] はリポジトリ名指定もできます。

[svnroot1:/trunk]
@developer=r

などと書けば

http://[サーバ名]/svn/svnroot1/trunk/     :dev1で読み可能
http://[サーバ名]/svn/svnroot1/branches/  :読み書き不可
http://[サーバ名]/svn/svnroot1/tags/      :読み書き不可
http://[サーバ名]/svn/svnroot2/trunk/     :読み書き不可
http://[サーバ名]/svn/svnroot2/branches/  :読み書き不可
http://[サーバ名]/svn/svnroot2/tags/      :読み書き不可

となります。

たとえば

などとしたい場合は以下のようにしておきます。

[groups]
admin = admin1
developer = dev1
tester = tester1,tester2


#基本的に誰でも読みは可能
#adminは読み書き可能
[/]
* = r
@admin = rw

#さらにdeveloperはtrunkを読み書き可能
[/trunk]
@developer = rw

#さらにdeveloperはbranchesを読み書き可能
[/branches]
@developer = rw

この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Subversion / TIPS集

現在のアクセス:78088


*1 つまりたとえば svnadmin create /opt/svnroot1 とかしたってこと

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS