Я нахожусь на ноутбуке (Ubuntu) с сетью, которая использует HTTP-прокси (разрешены только http-соединения).
Когда я использую svn up для URL-адреса типа http: // ....., все круто (google chrome репозиторий работает отлично), но сейчас мне нужно выполнить svn с сервера с помощью 'svn: // ....', и я вижу, что соединение отклонено.
Я установил конфигурацию прокси в / etc / subversion / servers, но он не помогает.
У кого-нибудь есть мнение / решение?
svn через HTTP-прокси
Ответы (7)
В /etc/subversion/servers
вы устанавливаете http-proxy-host
, который не имеет ничего общего с svn://
, который подключается к другому серверу, обычно работающему на порту 3690, запущенном командой svnserve
.
Если у вас есть доступ к серверу, вы можете настроить svn+ssh://
как объяснено здесь .
Обновление: вы также можете попробовать использовать connect-tunnel
, который использует ваш прокси-сервер HTTPS для туннелирования соединений:
connect-tunnel -P proxy.company.com:8080 -T 10234:svn.example.com:3690
Тогда вы бы использовали
svn checkout svn://localhost:10234/path/to/trunk
~/.subversion/servers
- person akavel; 15.02.2011
Net::Proxy
вручную (он не хотел устанавливать с помощью cpan install
), et voila!
- person Lasneyx; 07.06.2012
Хорошо, это должно быть очень просто:
$ sudo vi /etc/subversion/servers
Отредактируйте файл:
[Global]
http-proxy-host=my.proxy.com
http-proxy-port=3128
Сохраните его, снова запустите svn
, и все заработает.
Если вы можете получить к нему SSH, вы можете использовать SSH-сервер SVN с перенаправлением портов.
Используйте SSHs -L
(или -R
, я забыл, это всегда меня смущает), чтобы создать туннель ssh, чтобы
127.0.0.1:3690
действительно подключается к remote: 3690 через туннель ssh, а затем вы можете использовать его через
svn co svn://127.0.0.1/....
Хорошо, эта тема несколько устарела, но, поскольку я нашел ее в Google и у меня есть решение, это может быть кому-то интересно:
В основном (конечно) это невозможно на каждом прокси-сервере http, но работает на прокси-серверах, позволяющих подключаться по протоколу http на порт 3690. Этот метод используется прокси-серверами http на порту 443 для обеспечения безопасных соединений https. Если ваш администратор настраивает прокси-сервер для открытия порта 3690 для HTTP-соединения, вы можете настроить локальный компьютер для создания туннеля через прокси-сервер.
Мне просто нужно было проверить некоторые файлы с svn.openwrt.org в сети наших компаний. Простое решение для создания туннеля - добавить следующую строку в ваш / etc / hosts
127.0.0.1 svn.openwrt.org
После этого вы можете использовать socat для создания tcp-туннеля к локальному порту:
пока правда; do socat tcp-listen: 3690 прокси: proxy.at.your.company: svn.openwrt.org: 3690; Выполнено
Вы должны выполнить команду как root. Он открывает локальный порт 3690 и при подключении создает туннель к svn.openwrt.org на том же порту.
Просто замените адреса порта и сервера на свои нужды.
когда вы используете svn: // URI, он использует порт 3690 и, вероятно, не будет использовать http-прокси
svn: // не поддерживает http, поэтому http-прокси ничего не может сделать.
Любая причина, по которой http не работает? Вы рассматривали https? Если вам это действительно нужно, вам, вероятно, нужно открыть порт 3690 в вашем брандмауэре.
Если вы используете стандартную установку SVN, соединение svn: // будет работать на tcpip-порту 3690, и поэтому практически невозможно подключиться, если вы не измените конфигурацию сети (вы сказали, что разрешен только трафик Http) или вы установите модуль http и Apache на сервере, на котором размещен ваш SVN-сервер.