在我们的持续集成环境中,我们大量使用git clone
和git update
。
有时网络或中央git服务器不可靠。
有没有办法告诉git如果http请求失败重试?
例:
访问https://example.com/repos/foo_bar/info/refs?service=git-upload-pack时出现500内部服务器错误
有没有办法告诉git如果http请求失败重试?
没有git本身,它本身不支持该功能。
但有趣的是,包装git命令以重试其执行的想法之前已经完成:请参阅depot_tools的一部分git-retry
(1)手册页,depot_tools是处理Chromium开发的工具集合。
该包装外壳git-retry
调用python脚本git_retry.py
使用下列选项:
'-v', '--verbose', default=0,
增加详细程度;可以多次指定
'-c', '--retry-count', default=GitRetry.DEFAULT_RETRY_COUNT (5),
重试次数(默认为5)
'-d', '--delay', default=GitRetry.DEFAULT_DELAY_SECS (3.0)
指定两次连续重试之间要等待的时间(以秒为单位)(默认值是3秒)。可以为零。
'-D', '--delay-factor', default=2
适用于连续故障之间的延迟的指数因子(默认值=%default)。如果为零,则延迟将线性增加。将此设置为1可以保持恒定(不增加)延迟。
注意:带有子模块的仓库的git clone总是会尝试两次克隆一个子模块(一次重试)。请参阅“有什么方法可以从失败的地方继续进行Git克隆吗? ”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句