通过HTTP代理的svn

问题描述:

我在使用HTTP代理(仅允许http连接)的网络的笔记本电脑上(Ubuntu)。
当我使用svn来寻找像'http:// .....'这样的网址时,所有的东西都很酷(谷歌浏览器仓库工作得很完美),但是现在我需要用'svn://从服务器上svn。 ..'我看到连接被拒绝。
我已经在/ etc/subversion/servers中设置了代理配置,但没有帮助。
任何人有意见/解决方案?
通过HTTP代理的svn

+1

这个问题绝对帮助我5年后的下线! – slayedbylucifer 2013-05-20 08:39:23

+0

重复的(显然在主题上)问题:http://*.com/questions/1491180/how-to-configure-a-http-proxy-for-svn和http://*.com/questions/16649199/how-do-i-configure-the-svn -http-proxy-from-the-command-line – michael 2013-11-20 20:58:34

/etc/subversion/servers要设置http-proxy-host,其中有无关svn://它连接到不同的服务器通常由svnserve命令启动3690端口上运行。

如果您可以访问到服务器,你可以设置svn+ssh://explained here.

更新:你也尝试使用connect-tunnel,后者则使用HTTPS代理服务器的隧道连接:

connect-tunnel -P proxy.company.com:8080 -T 10234:svn.example.com:3690 

那么你会使用

svn checkout svn://localhost:10234/path/to/trunk 
+0

非常好,我一直在寻找类似的东西。为你+1好,先生。 – Ibrahim 2009-07-09 04:11:47

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

的svn://不说话HTTP,为此有什么HTTP代理可以做。

http无法正常工作的原因?你考虑过https吗?如果您确实需要它,您可能必须在防火墙中打开端口3690。

如果你能得到SSH,你可以使用SSH端口转发的SVN服务器。

使用SSHs -L(或-R,我忘了,它总是让我困惑),使一个SSH隧道,使

127.0.0.1:3690是真正连接到远程:3690在SSH隧道,然后就可以通过

使用
svn co svn://127.0.0.1/.... 
+0

用于SSH的Windows上的远程服务器 我使用使用开瓶器的HTTP隧道 – 2008-09-17 12:32:15

如果你使用的是标准SVN安装svn://连接将在tcpip端口3690上工作,因此除非您更改网络配置(您说只允许Http流量),否则它基本上不可能连接,或者您在托管SVN的服务器上安装http模块和Apache服务器。

好了,这个话题有点过时,但我发现它在谷歌和有一个解决方案,这可能对别人是很有意思:

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

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

127.0.0.1 svn.openwrt。ORG

之后,您可以使用socat建立一个TCP隧道到本地端口:

而真实的;做socat tcp-listen:3690 proxy:proxy.at.your.company:svn.openwrt.org:3690;完成

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

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

好吧,这应该是很容易的:

$ sudo vi /etc/subversion/servers 

编辑文件:

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

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