Как лучше всего настроить репозиторий Subversion на машине разработки под Linux? Внешние пользователи должны иметь доступ к определенному репозиторию, но ни к чему другому на машине. Я знаю, что один ответ - создать выделенный репозиторий, но я ищу решение для одной машины: расположение репозиториев, учетные записи, процедуры резервного копирования.





Один из популярных методов доступа к Subversion - через модуль Apache. Вы можете установить разные права на уровне каталога для управления доступом. См. Выбор конфигурации сервера и httpd, HTTP-сервер Apache. Для аутентификации я рекомендую использовать внешний источник аутентификации, например Microsoft AD через mod_auth_sspi.
Если вам нужно смешивать и сопоставлять права, см. Мой ответ для Как я могу сделать так, чтобы только некоторые папки отображались для определенных разработчиков с помощью SVN.
Я бы рекомендовал посмотреть глава о настройке сервера в книге по подрывной деятельности. Он дает предложения о том, какая конфигурация более подходит для вашего использования.
Как бы то ни было, настроить репозиторий с помощью автономного демона svn очень просто. Раздражает управление правами пользователей.
Я работаю в компании по автоматизации ИТ-инфраструктуры; мы делаем это все время.
Расположение репозитория: мы используем "/ srv / svn" по умолчанию для хранения всех репозиториев SVN, если у клиента нет особых требований, например, существующий репозиторий может храниться в общей файловой системе ReadyNAS.
Учетные записи: Все наши клиенты используют LDAP. Либо сервер OpenLDAP, работающий на главном хосте, но иногда и Active Directory, потому что у некоторых клиентов есть домен Windows в своем офисе, который мы также можем настроить. Разработчики получают доступ к группе «SCM» (обычно svn, git или devel) и группе «deploy». У этих групп есть разрешения только на вход в систему и выполнение действий, связанных с SCM (т. Е. Коммиты записи в репозиторий на основе принадлежности группы), или на развертывание приложений в производственной среде.
Процедуры резервного копирования: мы используем горячую копию svnadmin, если у клиента уже есть что-то на месте (обычно дамп svnadmin, хех).
svnadmin hotcopy /srv/svn /srv/svn_backups/$(date +%Y%m%d)
Для доступа к репо обычно используется простой svn + ssh. У некоторых клиентов уже есть установка Apache, но не у многих. Я рекомендую SSH. Разработчики выдвигают свои общедоступные ssh-ключи, и все в порядке. Управление пользователями LDAP практически не требует обслуживания (вариант Только).
У меня есть публикация в блоге, в котором описаны шаги, необходимые для настройки и запуска сервера Subversion на базе Linux для поддержки репозиториев кода и т. д.
В основном шаги следующие:
./configure, если таковые имеются.svnadmin create.svn import.svnserve -d. Также возможно сделать это автоматически
при перезагрузке.