回购同步/ Git克隆仅从詹金斯的奴隶失败

时间:2019-02-22 06:59:44

标签: git jenkins repo

我从詹金斯奴隶处执行repo sync

但是错误发生在特定的地方。

Cloning into 'repo_name'...
Connection to xxx.xxx.xxx.xxx closed by remote host.
fatal: The remote end hung up unexpectedly

当我手动执行它(不是来自jenkins)时,回购同步成功。 仅当由詹金斯的奴隶执行时,才会发生上述错误。

我也尝试低于cmd。但这是失败的相同错误。

git clone ssh://user@xxx.xxx.xxx.xxx:port/path/to/reponame

我尝试参考以下内容git config --global http.postBuffer 524288000。 但这不是固定的。...

The remote end hung up unexpectedly while git cloning

我添加--progress--verbose进行调查

git clone --progress --verbose ssh://user@xxx.xxx.xxx.xxx:port/path/to/reponame

git clone成功了!

为什么从詹金斯的奴隶那里失败了。 为什么添加--progress --verbose会成功。

是否可以在没有--progress的情况下进行修复? (从jenkins执行时,回购同步似乎没有--progress。)

对不起,我的英语不好。

2 个答案:

答案 0 :(得分:0)

这是一个常见问题,它可能有不同的原因。 有时由于从属计算机的日期速度较低。

请参阅,

https://confluence.atlassian.com/bitbucketserverkb/git-clone-fails-fatal-the-remote-end-hung-up-unexpectedly-fatal-early-eof-fatal-index-pack-failed-779171803.html

谢谢

答案 1 :(得分:0)

根据关注

https://issues.jenkins-ci.org/browse/JENKINS-9168

  

通过HTTP克隆大型存储库时,git服务器会安静一段时间,忙于计算pack文件。通常,将Apache配置为在套接字中长时间不活动将触发关闭。因此,最终用户看到的是,过一会儿,由于服务器意外重置了连接,“ git clone”失败了。

但是,我无法配置服务器,因为服务器是公共服务器。 所以,

  

如果用户从外壳程序尝试相同的命令,则Git会静默添加--progress选项(请参见手册页中的引号。)这可使套接字保持足够的闲聊状态,以避免从Apache关闭。

另一方面,仓库无法添加--progress选项。 我没有其他选择,所以我修改了回购脚本。 (.repo / repo / git_command.py)