четверг, 17 февраля 2011 г.

Подключение TortoiseSVN к svn-репозитарию в Internet через прокси.

При совместной работе над проектом, хранящимся в репозитарии SubVersion где то в сети, часто возникает вопрос, как организовать рабочий процесс. В этой заметке постараюсь ответить на вопрос: как настроить клиент subversion под Windows для доступа к репозитарию исходников.


Качаем последнюю версию клиента TortoiseSVN (msi) для своей платформы (32/64). Ставим, перегружаемся. запускаем виндовый експлорер, создаем новую пустую папку для локальной копии дерева исходников в подходящем месте.

В експлорере нажатием правой клавишей мыши на папке открываем контекстное меню, TortoiseSVN->Repo-browser.

В поле url вводим (например): http://svn2.assembla.com/svn/имя_проекта должно появиться окно запроса логина/пароля.
Вводим свои данные, можно отметить крыжик "сохранить данные аутентификации" для того чтобы каждый раз не вводить их заново.

Данные будут сохранены в "%Documents and Settings%\%user%\Application Data\Subversion\auth\svn.simple\"

Открывая узлы появившегося тривью, выбираем узел "trunk", правая клавиша мыши, checkout.

В поле "Checkout directory" вводим путь до ранее созданной пустой папки, ok.

Содержимое репозитария скачается в эту папку и создастся дерево каталогов.

Каталоги с именем ".svn" являются служебными каталогами клиента subversion, их удалять нельзя!

Правим исходники, компилим, тестим, чекиним. Подробнее о клиенте TortoiseSVN смотри здесь.

Если выход в инет идет через прокси, то клиента нужно настроить на использование прокси.
Из контекстного меню виндового експлорера выбираем TortoiseSVN->Settings.
В левом тривью выбираем Network, слева отмечаем крыжик "Enable Proxy Server" и заполняем необходимые поля.

Есть одна проблема при использовании прокси с NTLM авторизацией. TortoiseSVN не может работать через такой прокси. Проблема решается установкой на локальной машине промежуточного прокси. Точно работает вариант с cntlmКачаем, ставим. В файле настроек указываем домен, пользователя, пароль, адрес:порт прокси с NTLM авторизацией. Для TortoiseSVN в качестве прокси указываем адрес установленного cntlm. Обычно это 127.0.0.1:3128

При работе через прокси может возникать еще одна проблема: доступ для чтения работает, а при попытке commit выдается сообщение об ошибке типа:
"... MKACTIVITY ..... Could not parse response status line ..."
Для сквида лечиться добавлением в /etc/squid/squid.conf строчки:
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
и его перезапуском. Как для других проксей - не знаю. Подробности смотри здесь.

Если нужно работать с несколькими репозитариями svn, причем с одними - без прокси, с другими - через прокси, с третьими - через другой прокси и т.д., делаем следующее.

Из контекстного меню виндового експлорера выбираем TortoiseSVN->Settings.
В левом тривью выбираем Network, слева снимаем крыжик "Enable Proxy Server".

Жмем кнопку "Edit" напротив поля "Subversion server file:", читаем комментарии в этом файле, настраиваем его под свои нужды и сохраняем.

Мои настройки для доступа к assembla и google в этом файле выглядят так:

[groups]
google = *.googlecode.com
assembla = *.assembla.com
[assembla]
http-proxy-host = proxy
http-proxy-port = 3128
http-proxy-username = ProxyUserName
http-proxy-password = ProxyUserPass
http-timeout = 5
[google]
http-proxy-host = proxy
http-proxy-port = 3128
http-proxy-username = ProxyUserName
http-proxy-password = ProxyUserPass
http-timeout = 5

соответственно вместо ProxyUserName и ProxyUserPass подставить свои логин/пароль к прокси (а не к репозитарию!)

Комментариев нет:

Отправить комментарий