
私は Ubuntu システムを持っていて、そこに Subversion をインストールしました。今、そこに複数のリポジトリを作成したいと考えています。すべてのリポジトリには独自のログインが必要です。
例えば---example.com/svn/repo1 : user--1
example.com/svn/repo2 : ユーザー--2
example.com/svn/repo3 : ユーザー--3
これで、user1 は repo2 と repo3 にアクセスできなくなります。また、user2 は repo1 と repo3 にアクセスできなくなります。
複数のリポジトリは作成できますが、ログインは作成できません。助けてください。
ありがとう
答え1
dav_svn_moduleを使用する
ここにサンプルconfがあります。svnブックより深く
LoadModule dav_svn_module /usr/lib/apache/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache/mod_authz_svn.so
<IfModule dav_svn_module>
<IfModule authz_svn_module>
<Location /svn>
DAV svn
SVNParentPath /svn
AuthzSVNAccessFile /etc/apache2/svn_authz
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/apache2/svn_passwd
</Location>
</IfModule>
</IfModule>
authz の例:
cat /etc/apache2/dav_svn.authz
[groups]
admin = foo
graph = bar
developers = foo,baz
[/]
* =
@admin = rw
@developers = rw
@graph = r
[/branches/prod/*]
* =
@admin = rw
[ZCS:/]
* =
@admin = rw
@developers = rw
@graph = rw
[SYMFONY_PLUGINS:/]
* =
@admin = rw
@developers = rw
[SYMFONY:/]
* =
@admin = rw
@developers = rw
答え2
Apache サーバーの代わりに svnserve を使用します。作成したリポジトリ内に conf ディレクトリがあります。好みのテキスト エディターを使用して、次のファイルを編集し、変更を加えます。
svnserve.conf で次のコメントを解除します: [general]
anon-access = read
(そして既読をなしに変更します)
auth-access = write
passwd-db = passwd
passwdファイルにユーザー名とそれに対応するパスワードをusername = passwordの形式で追加します。
[users]
admin = adminspass
dev1 = devspass
すべてのリポジトリで同様の変更を行い、次のコマンドを使用してsvnserveを起動します。
svnserve -d --foreground -r /root/dir/of/repo
つまり、多くのチュートリアルで説明されているように/home/svnにリポジトリを作成した場合、コマンドは次のようになります。svnserve -d --foreground -r /home/svn
リポジトリには、次の URL を持つ任意の SVN クライアントを使用してアクセスできます。
svn://hostname-or-ip/repo-name