я использую апача с svn, работающим debian Linux, авторизовывающий againsta активный сервер каталогов. клиенты соединяются с репозиторием по http протоколу. если эта установка приемлема для Вас - продолжают читать.
это должно также работать под апачем на окна, но я никогда не пробовал его. то, что следует, debian конкретный, но должно работать так же под окнами / другие дистрибутивы; Вы не освободите свою svn историю при миграции...
установите требуемое программное обеспечение:
apt-get install libapache2-svn subversion apache2
в конфигурации для vhost апача [символьные ссылки на них могут быть найдены в/etc/apache2/sites-enabled]. в VirtualHost добавьте:
DAV svn
#change this to actual path
SVNPath /full/path/to/your/current/svn/directory
AuthType Basic
AuthName "SVN Server"
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
# provide here credentials for existing domain user.
# in my case domain is called domainName and user - user
AuthLDAPBindDN "domainName\user"
AuthLDAPBindPassword usersPassword
# put here ip of the domain controler and full path to OU containing accounts
AuthLDAPURL ldap://10.11.22.33:389/ou=Users,dc=domainName,dc=companyName,dc=whatever?sAMAccountName?sub?(objectClass=*)
Require valid-user
SVNAutoversioning on
AuthzSVNAccessFile /etc/apache2/svn_authz
удостоверьтесь, что апач загружает ldap модуль:
cd /etc/apache2/mods-enabled
ln -s ../mods-available/authnz_ldap.load
ln -s ../mods-available/ldap.load
/etc/init.d/apache2 reload
удостоверьтесь, что апач может изменить файлы в репозитории SVN:
chown www-data:www-data -R /full/path/to/your/current/svn/directory
Ваш svn_authz должен содержать правила, говорящие, кто может получить доступ что. в моем случае:
[groups]
ops=jack.brown,john.smith
[/]
* = rw
[/priv]
* =
@ops = rw
можно узнать больше о синтаксисе для того файла здесь.
если Вы достигли этого далеко - Ваши пользователи могут проверить из http://server.address/svn/ с помощью любого svn клиента [tortoise/cmdline/visual svn], они будут видеть всю историю и продолжать читать/писать в нее.