Обратите внимание на имя файла svnserve .conf.
Этот файл предназначен для настройки доступа с помощью встроенного svnserve
серверного процесса.
Вы никогда не должны использовать протокол file://
, за исключением того, над чем работает один разработчик. Например, ваши личные вещи. Если у вас более одного разработчика, вы должны использовать протокол, созданный для многопользовательского доступа.
Проблема с протоколом file://
заключается в том, что каждый имеет полный доступ к хранилищу. Они могут удалить его или сделать дамп, просмотреть историю хранилища и перезагрузить его.
В протоколе file://
нет никакой защиты, которая мешала бы кому-либо использовать ваш репозиторий, поскольку вы должны сделать всю структуру каталогов репозитория доступной для чтения / записи для всех.
Использование svnserve
очень просто и может защитить ваш репозиторий от несанкционированного доступа. Все, что вам нужно сделать, это убедиться, что единственный пользователь, который может читать или записывать в структуру каталогов хранилища, это пользователь, который запускает процесс svnserve
.
После того, как вы это сделаете, другой пользователь сможет прикоснуться к хранилищу или даже взглянуть на него - это обратиться к этому процессу сервера через клиент Subversion.
Вы уже настроили файл svnserve.conf
, все, что вам нужно сделать, это запустить сам процесс svnserve
(и убедиться, что только процесс svnserve
может читать или записывать в дерево каталогов хранилища.
Основная проблема в том, что svnserve
использует порт 3690 для связи с клиентами, и довольно много сайтов блокируют этот порт. Если это так, вам нужно поговорить со своим ИТ-отделом о разрешении использования этого порта. Вы можете запустить svnserve
на другом порту, но это немного усложнит задачу для ваших клиентов, поскольку они должны будут знать номер порта и имя сервера.
Итак, не используйте протокол file://
. Как вы узнали, с ним не реализована безопасность. Основное использование - для изучения подрывной деятельности и для отдельных проектов. Однако в моей системе есть частный репозиторий Subversion, но я все еще использую протокол svnserve
и svn://
. Я нахожу его достаточно простым в использовании, и мне не нужно продолжать использовать путь к репозиторию enter каждый раз, когда мне нужно оформить заказ:
$ svn co file:///Users/David/Work/svn_repos/trunk/myfile
против
$ svn co svn://localhost/trunk/myfile