it-swarm.cn

svn over HTTP proxy

我在笔记本电脑(Ubuntu)上使用HTTP代理的网络(只允许http连接)。
当我使用svn up for url如'http:// .....'一切都很酷(google chrome存储库工作完美),但是现在我需要从'svn:/ s服务器svn up/....'我看到连接被拒绝了。
我在/ etc/Subversion /服务器中设置了代理配置,但它没有帮助。
任何人有意见/解决方案?

52
small_jam

/etc/Subversion/servers中,您正在设置http-proxy-Host,它与svn://无关,后者连接到通常由svnserve命令启动的端口3690上运行的其他服务器。

如果您有权访问服务器,可以将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
62
cubex

好的,这应该很简单:

$ Sudo vi /etc/Subversion/servers

编辑文件:

[Global]
http-proxy-Host=my.proxy.com
http-proxy-port=3128

保存它,再次运行svn它会起作用。

46
dillera

如果你可以通过SSH连接到SSH端口转发的SVN服务器。

使用SSHs -L(或-R,我忘了,它总是让我感到困惑)制作一个ssh隧道,以便

127.0.0.1:3690实际上是通过ssh隧道连接到remote:3690,然后你可以通过它来使用它

svn co svn://127.0.0.1/....
2
Kent Fredric

好的,这个主题有点过时了,但是我在google上找到它并且有一个解决方案,这对某些人来说可能很有趣:

基本上(当然)这在每个http代理上是不可能的,但适用于允许端口3690上的http连接的代理。此方法由端口443上的http代理使用,以提供安全https连接的方式。如果管理员将代理配置为打开端口3690以进行http连接,则可以设置本地计算机以通过代理建立隧道。

我只是需要查看我们公司网络中svn.openwrt.org的一些文件。创建隧道的简单方法是在/ etc/hosts中添加以下行

127.0.0.1 svn.openwrt.org

之后,您可以使用socat创建到本地端口的TCP隧道:

而真实; do socat tcp-listen:3690 proxy:proxy.at.your.company:svn.openwrt.org:3690; DONE

您应该以root身份执行命令。它打开本地端口3690,并在连接时在同一端口上创建到svn.openwrt.org的隧道。

只需根据自己的需要更换端口和服务器地址即可。

1
gadgetweb.de

当你使用svn:// URI时,它使用端口3690,可能不会使用http代理

0
Cetra

svn://不会说http,因此http代理无法做到。

Http不起作用的原因是什么?你考虑过https吗?如果您真的需要它,您可能必须在防火墙中打开端口3690。

0
Olaf Kock

如果您正在使用标准SVN安装,则svn://连接将在tcpip端口3690上运行,因此除非您更改网络配置(您说只允许Http流量)或安装http模块,否则基本上无法连接托管SVN服务器的服务器上的Apache。

0
massimogentilini