各种SCM工具下使用http代理下载源码(git svn)

转载自:

http://www.linuxeden.com/html/develop/20090723/66951.html

 http://mysuperbaby.iteye.com/blog/935741

 

经常有使用SCM下载源码的必要,尤其是软件开发人员。但偶们的网络环境经常逼得我们不得不使用代理,或者是因为速度,或者是因为直连根本就不通。而且源码通常是零零碎碎的几千几万个小文件,不像一般的软件是单个的文件,一个下载工具即可搞定。

1,CVS
CVS使用代理非常麻烦,似乎不能用http代理(如果偶错了请提醒),而socks代理相当难找。好在这个东东已经慢慢变成了昨日黄花,我们不讨论它。

2,SVN
SVN比较方便,编辑~/.subversion/servers文件即可:
[global]
http-proxy-host = <代理的ip或域名>
http-proxy-port = <代理端口>
http-proxy-username = <用户名,如果需要的话>
http-proxy-password = <密码,如果需要的话>

3,HG
HG更简单,因为它使用的是http协议,一个命令解决:
export http_proxy=http://<用户名>:<密码>@<ip>:<端口>

4,Git
Git可以使用两种协议,git协议和http,如果是后者,那么办法跟HG一样,如果是git,比较麻烦,但也不是不可解决:
先去下载一个协议转换小工具:http://www.meadowy.org/~gotoh/ssh/connect.c
编译之:gcc -o connect connect.c
将生成的connect放到可执行文件路径中,如/usr/bin

然后创建一个使用代理的脚本,假设是http-proxy-gw,注意加上可执行属性,内容如下:
#!/bin/sh
# Filename: ~/bin/http-proxy-gw
# This script connects to an HTTP proxy using connect.c
connect -H http://yourproxyaddress:proxyport $@

最后,配置git:
git config --global core.gitproxy "http-proxy-gw for xxx.yyy"
后面的xxx.yyy是域名后缀,比如,下载linux源码就可以是设置为kernel.org

 

2012 7.25添加:

以上方法,我只实验了在公司内二级代理的情况下git的下载,it works fine

1、编译出 connect

2、写一个脚本 gitproxy.sh(记得这两个文件都要 chmod+x权限)

gitproxy.sh内容如下

 

#!/bin/sh

# Filename: ~/bin/socks-gw

# This script connects to a SOCKS proxy using connect.c

/home/<youraccount>/bin/connect -Hproxyserver:port$@

 

解释:

<youraccount>就是 你的账户

proxyserver:port就是填写你的代理IP及端口

 

3、将这两个文件拷入/home/<youraccount>/bin下,如果你的账户更目录下没哟的话那就创建一个

 

4、配置GIT参数,制定使用代理脚本

git config --global core.gitproxy "${HOME}/bin/gitproxy.sh"

 

5、git chone *** 大功告成

 

本人补充20120801 GIT 配置代理问题

今天遇到一个新的情况,有台服务器刚装的ubuntu,将我之前编译生成的connect执行文件以及执行脚本直接拷贝过去,每次运行都报错

syntax error

后来将connect.c 拷贝过来GCC重新编译了一下,问题解决了,该问题后来知道原来我之前的是64bit的ubuntu,而这台是32bit的系统估计编译出来的文件不兼容

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值