Gangmax Blog

关于svn的proxy

这个故事的上半部分是这样的。

不知道为什么,我用svn从公司的网络签出(checkout)googlecode网站上host的项目代码,总是得到“Destination Host Unreachable”错误。今天我想checkout dbfmplugin也是同样的问题。因此我想找到解决的办法。

首要值得怀疑的当然是proxy设置。搜索”svn proxy settings”到这里,解决的方法是修改”~/.subversion/servers”文件中”[global]” section中的以下内容:

1
2
http-proxy-host = xxx.xxx.xxx.com
http-proxy-port = 8080

改成公司的代理服务器信息即可。然后重新运行svn co命令,则可以正常得到代码了。

但是这个故事还有下半部分。

下午,我准备check in工作代码,却得到以下的错误:

1
2
3
提交失败(细节如下):
服务器发送了意外的返回值(501 Not Implemented),在响应 “MKACTIVITY” 的请求 “/svn/ITSP/!svn/act/3ecf9609-53a2-4a70-81eb-522a567cc322” 中
已完成

对应的英语应该是:

1
2
Commit failed (details follow):
MKACTIVITY of '/svn/ITSP/!svn/act/3ecf9609-53a2-4a70-81eb-522a567cc322': 501 Not Implemented

搜索了半天,最后在这篇文章的启发下才想到可能是今天修改svn proxy设置导致的。将其恢复到修改之前的状态,再试,就可以了。

看来不光“该加代理的不加代理”不行,“不该加代理的加了代理”也不行啊!给我的感觉是:从命令行运行svn命令,它不会从环境变量中取得proxy设置,而是从其自己的”~/.subversion/servers”文件中取得proxy配置,而不论环境变量里面的proxy是有还是没有。这样的设计还真让我有点不适应。

Comments