Использование Subversion и Apache
-
05-07-2019 - |
Вопрос
Я никогда раньше не использовал какой-либо контроль версий, хотя понимаю концепцию. Что меня смущает (и, возможно, я просто не знаю), какую выгоду я получу и / или почему я хочу настроить Subversion и Apache? Нужно ли мне настраивать его с помощью Apache, чтобы иметь возможность доступа к моим репозиториям с других компьютеров по сети? Пожалуйста, не стесняйтесь предоставить любые другие детали, которые вы считаете актуальными?
В настоящий момент у меня есть настройки для ноутбука (Windows & nbsp; XP Pro) и виртуальной машины (Windows & nbsp; XP Pro). На моей виртуальной машине у меня установлены Apache 2.2, MySQL 5 и PHP 5. Эта настройка - моя главная задача, хотя я рад слышать примеры / ситуации, которые отличаются от моего сценария.
Решение
Нет необходимости настраивать Subversion с Apache. Я использовал Subversion в течение многих лет, и мне никогда не приходилось это делать (хотя есть причины, по которым вы должны это делать, в основном это связано с инфраструктурой аутентификации). Поскольку вы находитесь в мире Windows, я видел, что Сервер VisualSVN очень рекомендуется и Легко просто настроить и перейти.
Другие советы
Протокол SVN является самым простым в настройке и администрировании, но, вероятно, не будет работать через корпоративные брандмауэры (но Apache будет работать через HTTP).
Это может быть полезно, когда порт 3690 должен быть закрыт. Это также позволяет пользователям просматривать код с помощью браузера, который имеет свои плюсы и минусы. Вам не нужно иметь клиент Subversion, чтобы увидеть код, но веб-браузер делает браузер плохим хранилищем.
Настройка не так сложна. Я нашел эту страницу полезной .
Но если вы просто используете его в локальной среде виртуальных машин, svnserve
подойдет вам.
Преимущество размещения вашего SVN-репозитория через Apache вступает в действие, если вы хотите, чтобы ACL-репозиторий был в вашем репозитории.
Вы можете настроить базовую аутентификацию и ограничить разрешения для каждого каталога (или файла, если вы чувствуете необходимость). Например, вы можете настроить хранилище таким образом, чтобы разрешить гостевую проверку, но для любой записи в хранилище потребуется определенный, действительный пользователь.
Результат использования Apache для аутентификации ваших пользователей означает, что вам не нужно определять своих пользователей в .htpasswd. Apache может подключиться к LDAP, большинству SQL-серверов любого типа или даже использовать аутентификацию Kerberos.
Использование упрощенного svnserve
вполне может быть достаточно. Однако детальные разрешения не могут быть применены, и вы не сможете подключиться к другой пользовательской базе данных для аутентификации.
Но, по вашему описанию, все вышеперечисленное может быть излишним. Преимущества, предлагаемые Apache, в основном бесполезны для одного пользователя и не стоят хлопот.
Я думаю, что вы попадаете в ситуацию, когда хотите использовать протокол WebDAV для доступа к вашему репозиторию SVN. В этом случае вы в основном разрешаете Apache обрабатывать доступ к файлам как посредник для самого SVN (без прямых подключений к хранилищу).
Я слышал, это работает довольно хорошо, но есть несколько альтернатив. Взгляните на книгу SVN (проверьте Google) для начала.
Мы используем Subversion в среде небольшой команды (6 человек), используя репозиторий Visual SVN. Изначально у нас не было веб-сервера Apache, только IIS, но теперь мы также запускаем Apache, но нет веских причин использовать Apache для хранилища.
Используя Apache, вы можете получить доступ к своему хранилищу через WebDAV, то есть через HTTP на стандартном порту, так что вы можете получить доступ / опубликовать свое хранилище, например, через корпоративный брандмауэр, который может не разрешать svnserve
порт.
SVN может быть системой клиент-сервер, если вы хотите поделиться своим кодом с другими людьми. Однако, если вы хотите работать с одним кодом (даже с более чем одного компьютера!), Вам вообще не нужен какой-либо сервер!
Вы можете использовать файл: // - сборка протокола почти для всех клиентов SVN и локального репозитория SVN.
Ваш SVN-репозиторий также может работать с сетевого ресурса. Однако вы должны использовать этот подход только , если вы работаете над ним в одиночку!
Вам не нужно использовать Apache. Там есть собственный сервер - вместо него можно использовать svnserve.exe. По умолчанию он работает на порту 3690, но его можно настроить на другой порт с помощью переключателя - port
при его настройке.
Грег Хьюгилл дал вам ссылку, которая сообщит вам, какую версию сервера Subversion использовать, и различные варианты использования. В основном это сводится к svnserve
, если вам не нужно интегрироваться с какой-либо аутентификацией. Используйте Apache, если вам нужны более сложные сценарии.
У меня есть коммерческая консоль Windows, которая обрабатывает svnserve. Мой профиль имеет ссылку, чтобы увидеть эту утилиту. Если вы решите использовать Apache, я рекомендую использовать сервер VisualSVN .