Существует множество репозиториев SVN, размещенных в одном каталоге. Хочу разоблачить одну из них (extra
) людям с разными полномочиями.
Почему следующая конфигурация apache не работает для http://example.net/svn/extra
но работает для всех других репозиториев SVN, например http://example.net/svn/proj1
.
Ошибка, которую я получаю, когда пытаюсь проверить http://example.net/svn/extra
является:
[error] [client x.x.x.x] (20014)Internal error: Can't open file '/home/trac/svn/svn/format': No such file or directory
[error] [client x.x.x.x] Could not fetch resource information. [500, #0]
[error] [client x.x.x.x] Could not open the requested SVN filesystem [500, #2]
[error] [client x.x.x.x] Could not open the requested SVN filesystem [500, #2]
Обратите внимание, что Subversion пытается получить доступ /home/trac/
svn/svn
/format
. Где svn/svn
путь пришел?
Это конфигурация:
<Location /svn/extra>
DAV svn
SVNPath /home/trac/svn/extra
AuthType Digest
AuthName "DevsExtra"
AuthUserFile /home/trac/devs-extra.digest
Require valid-user
</Location>
<Location /svn>
DAV svn
SVNParentPath /home/trac/svn/
AuthType Digest
AuthName "Devs"
AuthUserFile /home/trac/devs.digest
Require valid-user
</Location>
Вместо того, чтобы использовать несколько местоположений Apache для обработки аутентификации, я предлагаю взглянуть на mod_authz_svn
для Apache, поскольку он предназначен для управления доступом для каждого пути. Таким образом, вы можете сделать что-то вроде следующего, чтобы предоставить подмножеству разработчиков доступ к этой папке:
[groups]
devs-extra = bob, bill, jim, sally
[svn:/extra]
@devs-extra = rw
http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html