Когда я впервые установил SVN на своем сервере, я выбрал WebDAV http://...
метод доступа. Однако я не мог понять, как включить несколько репозиториев с этой конфигурацией. С помощью этого метода любой коммит увеличивал счетчик ревизий для всех проектов.
Затем я переключил svn://
протокол с использованием включенного демона svnserve. Используя svnserve -d -r /storage/svn/
варианты, я смог обслужить несколько отдельных репозиториев. Однако мне и моему партнеру не понравилось, что наши пароли должны храниться в текстовых файлах.
Мне нужен способ сделать доступными несколько репозиториев, многие из которых будут иметь одинаковые права доступа. Будет ли кто-нибудь достаточно любезен, чтобы указать мне правильное направление?
Я полагаю, что есть два распространенных способа избежать хранения паролей в открытом виде в конфигурации svnserve. Оба варианта хорошо работают в нескольких репозиториях и основаны на вашей настройке svnserve. Оба варианта быстрее, чем доступ через WebDAV, по крайней мере, в SVN 1.6 и ранее.
Я связал параметры с официальной документацией SVN, так как в этом ответе они немного длинны.
SASL достаточно прост в настройке и имеет преимущество подключаемых плагинов аутентификации, от простого файла с хешами MD5 до интеграции Kerberos или Active Directory. Довольно мощный. Этот вариант не требует учетных записей локальной системы.
SSH немного сложнее настроить, но многие разработчики программного обеспечения уже знакомы с аутентификацией SSH и уже имеют пару ключей SSH, которые они используют для аутентификации на своих серверах. Для этого параметра требуются локальные системные учетные записи для коммиттеров, но не требуется демон svnserve. Ваш клиент подключается по протоколу svn + ssh: //. и запускает собственный процесс svnserve на сервере. Шифрование и аутентификация выполняется клиентом ssh, а не клиентом SVN, поэтому вам следует использовать инструмент кэширования паролей ssh, такой как pageant (в Windows), чтобы избежать повторного ввода пароля. Опция SSH довольно популярна в распределенных системах контроля версий, таких как Git и Mercurial.
Проверьте официальную документацию SVNBook для более подробного описания и настройки.
Предполагая, что у вас есть такая структура:
Вам понадобится что-то вроде:
<Location /svn>
DAV svn
SVNParentPath /var/repositories
AuthType Basic
Allow from all
AuthzLDAPAuthoritative off
AuthName "SVN Auth"
AuthzSVNAccessFile /var/security/svnauthz.conf
AuthUserFile /var/security/passwd.conf
Require valid-user
</Location>
Для удобства администрирования рекомендую использовать SVNManager . Это поможет вам создавать репозитории, управлять разрешениями и группами.
Для облегчения обзора и навигации по репозиторию с помощью http я рекомендую вам использовать websvn Это поможет вам перемещаться по репозиторию, делать различия и читать код.