Jenkins(Windows)Git获取非常缓慢

27
我们在Windows Server 2012上的Jenkins安装中遇到了git fetch命令缓慢的问题。我已经尝试了这些帖子中提到的所有解决方案: 有人能找到一个永久性解决方案吗?
Jenkins的控制台输出日志:

由远程主机启动

在 F:\Jenkins\jobs\xxx\workspace 的主分支上构建

> git.exe rev-parse --is-inside-work-tree # 超时=10

从远程 Git 存储库获取更改

> git.exe config remote.origin.url xhttp://scm/git/xxx # 超时=10

从 xhttp://scm/git/xxx 获取上游更改

> git.exe --version # 超时=10

使用 .gitcredentials 设置凭据

> git.exe config --local credential.helper store --file=\"C:\Users\APP_JE~1\AppData\Local\Temp\git7476037793811743133.credentials\" # 超时=10

> git.exe -c core.askpass=true fetch --tags --progress xhttp://scm/git/xxx +refs/heads/:refs/remotes/origin/

问题在这里:上述命令可能需要 30 秒到 120 秒。在本地开发机器上只需要几秒钟。

> git.exe config --local --remove-section credential # 超时=10

版本信息:

Jenkins版本为最新版1.608, 操作系统为Windows Server 2012, Git版本为最新版1.9.5 (Windows下载地址:http://git-scm.com/download/win), Jenkins使用的Git客户端插件版本为最新版1.16.1, Jenkins使用的Git插件版本为最新版2.3.5。 Jenkins运行在具有服务器管理员访问权限的域用户身份下。

你是否尝试按照这里提到的重新安装git? - Nelson G.
是的,我已经尝试过了。它没有帮助。我还尝试了以下3个配置选项,但都没有成功:$ git config --global core.preloadindex true $ git config --global core.fscache true $ git config --global gc.auto 256 - Thomas T
你的服务器是否在本地机器之后使用不同的代理?我们有时会遇到代理扫描所有文件的问题,这需要花费一些时间。 - michaelbahr
@michaelbahr 不是这样的。在服务器上使用git Bash手动运行命令没有问题。这是git和Jenkins结合的问题。 - Thomas T
Thomas,这个问题有任何更新吗?我们这里也遇到了同样的情况。 - Webjedi
还没有@Webjedi。我会在假期回来后尝试DavidNeiss的答案。 - Thomas T
3个回答

9

Git客户端Windows版本2.6.1修复了这个问题。现在运行速度飞快!

我正在使用Jenkins中的git cmd,路径为:

C:\Program Files\Git\cmd\git.exe


终于了!这个问题困扰我差不多两年了! - berkus
2
版本2.6.1在哪里?截至今天,Git的版本似乎是2.26.0。我在使用这个最新版本时仍然遇到了缓慢的获取问题。即使通过“高级克隆行为”将--depth设置为1并增加超时时间也无济于事。 - lkisac

2

如果您不需要标签,请使用高级克隆行为并启用“不获取标签”复选框。Git仍应该检出您指定的分支/标签。


1

8
你有什么想法可以在Jenkins Git插件中启用这些标志,以及如何查看这些标志的输出吗? - Thomas T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接