msysgit'子模块更新'在Windows 7中过慢

时间:2014-07-09 18:07:41

标签: windows git git-submodules

我有5个子模块,git submodule update需要6-8秒。在ubuntu 13.10的同一个repo上使用相同的git submodule update命令需要0.4秒。

为了解决这个问题,我尝试了这两个问题中列出的所有内容:

Msysgit bash is horrendously slow in Windows 7
Git/Bash is extremely slow in Windows 7 x64

我已执行以下操作:

  • 使用具有大量内存和4核的虚拟机安装全新的Windows x64
  • 在c:\ git \
  • 中安装msysgit
  • 通过关闭注册表中的luafv驱动程序并将UAC设置为“从不
  • 来禁用UAC
  • 以管理员身份运行git bash
  • $ HOME变量位于C:驱动器
  • export PS1='$' in git bash
  • git config --global core.preloadindex true
  • git config --global core.fscache true
  • git config --global gc.auto 256
  • 未安装防病毒软件

我没有想法,并且认为我问是否有人遇到同样的问题,特别是子模块更新。在实现上述更改列表时,Git性能是可接受的。我开始认为在Windows中实现git命令实际上是错误的。

2 个答案:

答案 0 :(得分:1)

尝试以上所有,但经过多个小时的挖掘,我终于找到了一个运行msysgit 1.9.x的旧版和新版Windows框的解决方案。

尝试将%LOGONSERVER%设置为"有效"价值如\\%COMPUTERNAME%。事实上,将其设置为除空之外的任何值,可以在两个Windows机箱上为Git + SSH提供稳定且正常的网络性能。

运行超级简单:

git ls-remote git@gitlab...
Old Windows: 27 s -> 0.8 s
New Windows:  7 s -> 0.8 s

是的,这是一个请求的27秒。

这两个框都是由Windows任务计划程序运行的Jenkins从属程序。使用RDP登录后性能标准化,这使得调试非常棘手。詹金斯' "系统信息"页面及其环境变量转储终于将它丢弃了。

答案 1 :(得分:0)

罪魁祸首是McAfee病毒扫描程序。我花了2。5年才搞清楚。在对不同问题进行故障排除时,我们的IT团队完全删除了它(我很惊讶他们确实这样做了)并且我借此机会对此进行了测试。子模块更新速度提高了4倍,编译速度提高了2倍。