我从詹金斯奴隶处执行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
。)
对不起,我的英语不好。
答案 0 :(得分:0)
这是一个常见问题,它可能有不同的原因。 有时由于从属计算机的日期速度较低。
请参阅,
谢谢
答案 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)