Несколько входов в репозиторий SVN

Несколько входов в репозиторий SVN

У меня есть система Ubuntu и установленный на ней Subversion. Теперь я хочу создать на ней несколько репозиториев. Все репозитории должны иметь свои собственные логины.

например---example.com/svn/repo1 : пользователь--1

example.com/svn/repo2 : пользователь--2

example.com/svn/repo3 : пользователь--3

Теперь пользователь user1 не должен иметь доступ к repo2 и repo3. И пользователь user2 не должен иметь доступ к repo1 и repo3.

Я могу создать несколько репозиториев, но не логины. Пожалуйста, помогите мне.

Спасибо

решение1

Использовать dav_svn_module

Вот пример конфигурации, посмотритекнига 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>

Пример аутентификации:

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

Используйте svnserve вместо Apache server. Внутри созданного вами репозитория вы найдете каталог conf. Используя ваш любимый текстовый редактор, отредактируйте следующие файлы, внеся следующие изменения:


В svnserve.conf раскомментируйте следующее: [general]

anon-access = read(и измените read на none)

auth-access = write

passwd-db = passwd

В файле passwd добавьте имена пользователей и соответствующие им пароли в формате имя пользователя = пароль.

[users]
admin = adminspass
dev1 = devspass

Внесите аналогичные изменения во все ваши репозитории и запустите svnserve с помощью команды: svnserve -d --foreground -r /root/dir/of/repo т.е. если вы создали репозитории в /home/svn, как сказано во многих руководствах, команда будет выглядеть так:svnserve -d --foreground -r /home/svn

Доступ к репозиториям можно получить с помощью любого клиента SVN по URL-адресу:

svn://hostname-or-ip/repo-name

Связанный контент