複数のSVNリポジトリログイン

複数のSVNリポジトリログイン

私は 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

関連情報