Невозможно выполнить git -svn выборки за прокси-сервером
Я пытаюсь зеркалировать репозиторий svn с помощью git -svn.
Я делаю
git svn clone http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind
И я получаю
Initialized empty Git repository in f:/gstest/WorldWind/.git/
RA layer request failed: PROPFIND request failed on '/svn/trunk/WorldWind': PROPFIND of '/svn/trunk/WorldWind': could not connect to server (http://worldwind31.arc.nasa.gov) at /usr/lib/perl5/site_perl/Git/SVN.pm line 148
Если я делаю то же самое на другом компьютере, который не входит в прокси, это нормально.
Я нахожусь на win7, и я установил $HTTP_PROXY
, http.proxy
(глобальный в git) и $HOME/AppData/Roaming/Subversion/servers
в правильный прокси.
Выполнение svn checkout [repo adress]
в оболочке работает.
Выполнение wget [repo adress]
в оболочке работает.
Но не git svn clone [repo adress]
Любые идеи? Большинство вопросов, которые я нашел по этому поводу, указывают мне на файл Subversion/servers
, но теперь я отредактировал его, и проблема все еще там...:/
Ответы
Ответ 1
У меня была такая же проблема.
И решение находит правильный каталог конфигурации Subversion. По крайней мере, в моем случае native svn.exe
использует файл C:\Users\MYUSER\AppData\Roaming\Subversion\servers
, но git-svn
использует ~/.subversion/servers
. И я имею в виду этот путь ~/.subversion/servers
в оболочке Git Bash, где ~
разворачивается в нужное место. Измените ~/.subversion/servers
так же, как и тот, который используется svn.exe
, а затем git svn clone
должен работать.
Короче говоря, ключ находит правильный файл конфигурации для редактирования, поскольку у вас может быть несколько из них в Windows.
Ответ 2
Чтобы заставить svn работать за прокси-сервером в linux, обновите файл ~/.subversion/servers
с помощью сведений прокси-сервера.
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-host = YOURPROXY.com
http-proxy-port = YOURPORT
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem
Я предполагаю, что аналогичная конфигурация на окнах...
Ответ 3
Обычно только переменные среды:
-
HTTP_PROXY
-
HTTPS_PROXY
-
NO_PROXY
достаточно для git или git -svn для правильной работы.
Но для меня нужен точный URL-адрес.
Например:
-
HTTP_PROXY=wwww.myproxy.company:8080
не будет работать, но
-
HTTP_PROXY=http://wwww.myproxy.company:8080
будет работать.
Использовать то же самое для HTTPS_PROXY
, что означает тот же http-адрес (я сначала попытался поместить https-url для HTTPS_PROXY
, но это не так, как это работает)
Конечно, если вам нужно пройти аутентификацию, вы можете (по крайней мере, для тестирования) добавить в нее свой логин/пароль:
HTTP_PROXY=http://myLogin:[email protected]:8080
И это тоже помогает установить NO_PROXY
: localhost,*.company
.
Таким образом, основной причиной этого ответа является "двойная проверка точного URL-адреса, который вы используете" (и протестируйте его с помощью простого curl http://www.google.com
или с wget
, либо из пакета msysgit, либо из Gnu On Windows
)
Ответ 4
Посмотрите на C:\Users\YOU \.subversion\servers для настроек. Вы ищете что-то внутри этого файла, например...
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-host = 127.0.0.1
http-proxy-port = 3128
... Эти настройки предназначены для CNTLM. Раскомментируйте строки, которые я расколол выше, и разместите свои собственные данные. Есть поля для паролей и т.д. Исправлено это для меня, чтобы получить материал от Sourceforge. Да, Sourceforge все еще там.
Кроме того, CNTLM отлично подходит для прохождения через NTLM, на переднем плане и т.д. Запустите Fiddler2 и установите для правил "Автоматическая аутентификация" значение true, чтобы получить любую авторизацию, которую пропускает CNTLM. Обновления Chrome - это одно, что Fiddler исправляет для меня.
Ответ 5
Для меня решением было просто изменить url в config.
Потому что я не смог получить доступ к существующему.
Чтобы проверить, я просто обращался к URL-адресу репо с помощью моего браузера.
В случае использования запрещенного URL я получил '403 Forbidden'.