2011-06-23 141 views
8

我有一个脚本自动运行git clone/pull(这实际上发生在jenkins CI内部,但我的问题更一般)。远程git服务器是基于HTTPS的。使用git客户端的计算机具有片状DSL互联网连接,所以它有时会重新连接并更改IP地址,从而失去现有的所有连接。当git客户端运行时连接失败时,客户端永远不会成功,但它不会因为超时而失败,所以我的脚本会挂起。有没有一种方法可以使http超时git?

我想设置客户端,以便在一段时间后超时(因此脚本可以重试,或记录失败或采取任何其他操作)。但是我在git-config的联机帮助页中找不到任何超时选项。我发现a related question但它只适用于SSH连接。你知道是否有其他的http服务器?

回答

6

您可以尝试使用

http.lowSpeedLimit,http.lowSpeedTime

如果HTTP传输速度比http.lowSpeedLimit少 更长 比http.lowSpeedTime秒, 转移中止。可以通过GIT_HTTP_LOW_SPEED_LIMIT和 GIT_HTTP_LOW_SPEED_TIME环境 变量覆盖 。

+0

这似乎工作,谢谢。至少我有一段时间没有看到这个问题。 –

+0

@manojlds http.lowSpeedLimit的单位是什么我将它设置为10kbps –

+0

@adnankamili字节每秒。参考:http://blogs.collab.net/git/tips-on-git –

1

将此增加到...的.gitconfig

[http] 
lowSpeedLimit = 1000 
lowSpeedTime = 20 

lowSpeedLimit是每秒

我把它叫做Codeplex上条款字节。

6

附加CAD家伙的回答是:

而且

git config --global http.lowSpeedLimit 1000 
git config --global http.lowSpeedTime 600 

工作正常。

上面的例子表示远程动作将阻止当速度保持低于1KB/s的600秒(10分钟),该操作将阻塞。

相关问题