有没有办法让 git over http 超时?

发布于 2024-11-16 21:48:35 字数 415 浏览 0 评论 0原文

我有一个自动运行 git clone/pull 的脚本(这实际上发生在 jenkins CI 内部,但我的问题更笼统)。远程 git 服务器是基于 HTTPS 的。装有 git 客户端的机器的 DSL 互联网连接不稳定,因此有时会重新连接并更改 IP 地址,从而丢失所有现有连接。当 git 客户端运行时连接失败时,客户端永远不会成功,但也不会因超时而失败,因此我的脚本挂起。

我想设置客户端,使其在一段时间后超时(以便脚本可以重试,或记录失败,或采取任何其他操作)。但我在 git-config 手册页中没有找到任何超时选项。我发现相关问题,但它仅适用于 SSH 连接。您知道 http 服务器是否有替代方案吗?

I'm having a script running git clone/pull automatically (this is actually happening inside jenkins CI, but my question is more general). The remote git server is HTTPS based. The machine with the git client has a flaky DSL internet connection, so it sometimes reconnects and changes IP address, losing all its existing connections. When the connection fails while the git client is running, the client never succeeds but it doesn't fail with a timeout either, so my script hangs up.

I'd like to set up the client so it timeouts after some period (so the script can retry, or log a failure, or take any other action). But I didn't find any timeout option in the git-config manpage. I found a related question but it's only for SSH connections. Do you know if there's an alternative for http servers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

简单 2024-11-23 21:48:35

CAD 家伙的回答的补充:

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

可以正常工作。

上面的例子意味着远程操作将被阻塞,当速度保持在 1KB/s 以下并持续 600 秒(10 分钟)时,该操作将被阻塞。

Additional to CAD bloke's answer:

Also

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

works fine.

The above example means the remote action will block when the speed kept below 1KB/s for 600 seconds(10min), the action will block.

老街孤人 2024-11-23 21:48:35

您可以尝试使用

http.lowSpeedLimithttp.lowSpeedTime

如果 HTTP 传输速度(以每秒字节数为单位)低于“http.lowSpeedLimit”且持续时间超过“http.lowSpeedTime”秒,则传输将中止。
可以被 GIT_HTTP_LOW_SPEED_LIMIT 覆盖并且
GIT_HTTP_LOW_SPEED_TIME 环境变量。


Git 2.41(2023 年第 2 季度)添加了 http.lowSpeedLimit 的单位。

请参阅 提交 0aefe4c(2023 年 5 月 13 日),作者:Corentin加西亚(核心
(由 Junio C Hamano -- gitster -- 合并于 提交 1f141d6,2023 年 5 月 20 日)

doc/git-config:添加单元对于http.lowSpeedLimit

签署人:Corentin Garcia

在文档中添加 http.lowSpeedLimit 的单位(字节/秒)。

git config 现在包含在其 手册页

如果 HTTP 传输速度(以每秒字节数为单位)...

You can try using

http.lowSpeedLimit, http.lowSpeedTime:

If the HTTP transfer speed, in bytes per second, is less than 'http.lowSpeedLimit' for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
Can be overridden by the GIT_HTTP_LOW_SPEED_LIMIT and
GIT_HTTP_LOW_SPEED_TIME environment variables.


Git 2.41 (Q2 2023) added the unit for http.lowSpeedLimit.

See commit 0aefe4c (13 May 2023) by Corentin Garcia (corenting).
(Merged by Junio C Hamano -- gitster -- in commit 1f141d6, 20 May 2023)

doc/git-config: add unit for http.lowSpeedLimit

Signed-off-by: Corentin Garcia

Add the unit (bytes per second) for http.lowSpeedLimit in the documentation.

git config now includes in its man page:

If the HTTP transfer speed, in bytes per second, ...

把昨日还给我 2024-11-23 21:48:35

将其添加到 .gitconfig ...

[http]
lowSpeedLimit = 1000
lowSpeedTime = 20

lowSpeedLimit 是每秒字节数,

我将其称为 Codeplex 子句。

Add this to .gitconfig ...

[http]
lowSpeedLimit = 1000
lowSpeedTime = 20

lowSpeedLimit is bytes per second

I call it the Codeplex clause.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文