ChatGPT解决这个技术问题 Extra ChatGPT

How to configure a HTTP proxy for svn

I want to check code from the repository http://code.sixapart.com/svn/perlbal/ . I can only access the the repository url by setting a proxy. I guess if I want to get the code from the same URL by svn I need to configure a proxy, too. So does anyone of you could tell me how to configure a HTTP proxy in svn?

By the way, I use the command-line svn client under Linux.


M
M. Hamza Rajput

Have you seen the FAQ entry What if I'm behind a proxy??

... edit your "servers" configuration file to indicate which proxy to use. The files location depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)

For me this involved uncommenting and setting the following lines:

#http-proxy-host=my.proxy
#http-proxy-port=80
#http-proxy-username=[username]
#http-proxy-password=[password]

On command line : nano ~/.subversion/servers


Does anyone know if there's a way to configure it to try the proxy, and fall back on using the basic network connection if the proxy isn't available? I have a proxy at work, but when I'm remote I'd like to be able to use SVN without having to open up the config file and comment out the lines for the proxy.
For me, Kimvais solution below helped. I had to uncomment the section right below '[global]'. Initially, I had uncommented the same lines at their first occurence which did not help.
@ErikMitchell: Create two versions of the config file and scripts which allow you to switch. Read your OSs docs how to hook into the network discovery mechanism and execute the correct script when your laptop notices where it is.
It works for me, but the password stay stored as plain text. I don't want my password expose like this. Is there a way to contour this?
s
serv-inc

You can find the instructions here. Basically you just add

[global]
http-proxy-host = ip.add.re.ss
http-proxy-port = 3128
http-proxy-compression = no

to your ~/.subversion/servers file.


This is client side configuration. The 'servers' file means settings to connect to servers. See svnbook.red-bean.com/en/1.1/ch07.html#svn-ch-7-sect-1.3.1
latest svnbook link (v1.7) for "servers" file configuration: svnbook.red-bean.com/en/1.7/…
s
sdafjhjh

In windows 7, you may have to edit this file

C:\Users\\AppData\Roaming\Subversion\servers

[global]
http-proxy-host = ip.add.re.ss
http-proxy-port = 3128

b
bahrep

There are two common approaches for this:

Specify http-proxy- options in your /etc/.subversion/servers or %APPDATA%\Subversion\servers file,

Use --config-option command-line option to specify the same http-proxy- options in single command-line you run. For example, svn checkout ^ --config-option servers:global:http-proxy-host= ^ --config-option servers:global:http-proxy-port=

If you are on Windows, you can also write http-proxy- options to Windows Registry. It's pretty handy if you need to apply proxy settings in Active Directory environment via Group Policy Objects.


In linux you can use alias svn-my-proxy='svn --config-option ...' to be able to use svn-my-proxy co http://svn/repo/trunk. This allows you to easily switch between proxy (svn-my-proxy co) and no-proxy (svn co) configurations depending on what network your machine is on at the time. You can add the alias command to your ~/.bashrc to be recreated on next bash login. Helps me a lot between my work network and my home network!
u
user3092818

In TortoiseSVN you can configure the proxy server under Settings=> Network


Would be really nice if you can add a screenshot
P
Petesh

Most *nixen understand the environment variable 'http_proxy' when performing web requests.

export http_proxy=http://my-proxy-server.com:8080/
svn co http://code.sixapart.com/svn/perlball/

should do the trick. Most http libraries check for this (and other) environment variables.


Sadly, Subversion does not honor http_proxy yet, and probably never will. See the issue at subversion.tigris.org/issues/show_bug.cgi?id=1327
Thanks for the heads up. I'm curious: under Ubuntu 14.10 the http_proxy convention seems to work (SVN v1.8.10). But it doesn't under Centos 6.6 (SVN v1.6.11). I searched in their changelog but didn't find anything clear enough. Any idea if it's been patched for good ?
svn 1.8 changed how http networking operates almost completely. Adding support for http_proxy may have been a side effect.