Существует четыре общих протокола для доступа к сети SVN.
svn://repos
svn+ssh://repos
https://repos
http://repos
Страница Wikipedia не говорит многое о различиях четырех различных протоколов. Я всегда предпочитал svn://
, потому что является самым легким настроить, но каково различие и какой "лучше"?
http://
имеет серьезные накладные расходы, особенно при работе с тысячами маленьких файлов. Я использовал svn для сайта, который имел около 50,000 иконок, и все они были сохранены в SVN. При использовании HTTP на проверку ушло около 20 минут. Как только я переключился на svn://
, это заняло меньше минуты. Это потому, что с HTTP это один новый HTTP-запрос на файл.
http://
, однако, имеет следующее большое преимущество: обычно он проходит через брандмауэры. Например, теперь, когда я переключился на svn://
, я больше не могу получить доступ к моему репозиторию из университета из-за их брандмауэра.
Что касается разницы между использованием SSL/TLS или нет, ну, это очевидно: данные зашифрованы; однако их сложнее настроить.
также, если вы используете http: // (apache + svn), то вы можете заставить пользователям войти в систему использовать аутентификацию Windows с добавлением модуля Mod_auth_sspi.
Смотрите здесь: http://blog.pengoworks.com/index.cfm/2007/11/1/Configurging-windows-authentication-with-apache--22x-and-subversion
Так что ваша ( Windows) DEV нужно только вспоминать один пользователь / пароль
HTTPS: //
и SVN + SSH: //
зашифрованы и безопасны для передачи безопасных данных (таких как ваш пароль SVN.
Если это что-то вроде git, SVN + SSH: //
будет быстрее https: //
и SVN: //
будет быстрее http: //
.
http
и и
HTTPS
обрабатываются модулем веб-сервера для поддержки Subversion, поэтому вы можете использовать аутентификацию на основе HTTP (сконфигурированную через .HTACCESS) для ограничения доступа к Ваш репозиторий).
https: //
и svn + ssh: //
зашифрованы и поэтому безопаснее передавать защищенные данные (например, в качестве пароля SVN.
Если это что-то вроде Git, svn + ssh: //
будет быстрее, чем https: //
и svn: //
] будет быстрее, чем http: //
.
svn + ssh
- это протокол svn
, работающий внутри туннеля SSH. Клиент использует SSH для входа на удаленный сервер и удаленно запускает команду svn в этом туннеле. На мой взгляд, svn + ssh
- самый простой способ использовать репозиторий Subversion в удаленной системе, потому что у вас нет сервера для запуска в этой системе, если предположить, что у вас уже есть SSH-сервер.
Кроме того, svn + ssh
использует криптографическую защиту SSH. Не используйте протокол raw svn
в ненадежных сетях.
Основная проблема с svn + ssh
заключается в том, что он требует доступа к оболочке на удаленной машине.Трудно предложить кому-то доступ к репозиторию без предоставления ему доступа ко всей учетной записи оболочки. Для этого вам нужен один из методов на основе HTTP, то есть http
или https
(предпочтительно https
из-за уровня шифрования и аутентификации). Эти методы более сложны в настройке (вам нужен сервер HTTP / HTTPS, например, Apache), но позволяют администратору репозитория тщательно и точно контролировать права доступа к репозиторию.