【问题标题】:SourceTree very slow with many repositoriesSourceTree 非常慢,有很多存储库
【发布时间】:2015-03-22 05:31:55
【问题描述】:

我每天要处理很多小项目,需要经常切换。

  • 我在 Sourcetree 中有 50 多个 Git 存储库。
  • 通常有 5 个项目在“选项卡”中打开。

从 SourceTree 中的“Tab”切换非常慢。有时长达 15 秒。我该如何改善这种行为?

【问题讨论】:

    标签: git performance repository atlassian-sourcetree


    【解决方案1】:

    TL;DR:

    选项 1:(继续使用 SourceTree): SourceTree 长期彻底刷新。可以通过将过滤器设置为“已修改”来关闭。 (对我来说,我必须来回设置一次才能生效)。

    选项 2:(使用 Tower/CLI 并设置 showUntrackedFiles)

    选项 3:(使用 Tower/CLI 和标量)。

    微软有提高repo性能的解决方案:Scalar

    加长版: 大型存储库(有很多文件)有这个问题。调查并找到 SourceTree 缓慢的根本原因。

    您可以在命令行中测试问题:

    git status -uall 
    

    git status -uno
    

    如果你发现 git status -uall 超级慢(与 SourceTree 一样慢,那么这可能是你的罪魁祸首)。

    Sourcetree 在进行状态刷新时总是使用-uall

    有一种方法可以将您的 git 配置文件配置为在运行git status 时始终跳过搜索未跟踪的文件通过:

    git config --local status.showUntrackedFiles no
    

    然后问题就变成了 SourceTree 拒绝尊重这个标志(而像 Tower 这样的其他工具确实尊重它)。

    可以在此处找到更多信息(在status.showUntrackedFiles 部分下): https://git-scm.com/docs/git-config

    在这里(在--untracked-files[=<mode>] 部分下): https://git-scm.com/docs/git-status

    注意:在你的 repo 的 git 配置文件中将 showUntrackedFiles 属性设置为 no 意味着当你添加一个新文件时,git status 不会拾取它,除非你使用 -uall 参数显式运行它。

    【讨论】:

      【解决方案2】:

      目前 2017 年 6 月发布的最新版本 2.1.2.5 即使在今天之前在这里尝试了所有答案之后(即使只有 1 个项目),对我来说也很慢。

      显然,.gitconfig 在首次安装 SourceTree 时已写入网络驱动器 (H:)。这就是让我瞬间获得性能的原因:

      1. 将 .gitconfig 移动到本地 SSD (C:)

      2. 设置 HOME 变量。在环境变量(特别是用户变量)中,将 HOME 设置为 C: 的值(或您决定设置的任何其他路径)。

      【讨论】:

        【解决方案3】:

        通过

        提高性能
        1. https://git-scm.com/download/win安装最新的git exe
        2. 配置选项 > Git > Use System Git 而不是 Use Embedded Git

        【讨论】:

        • 我已经用过系统 git,但是从 2.13.2 更新到 2.20.1 有帮助。现在 SourceTree 比以前快了很多,我需要等待几秒钟才能检测到单个文件上的一些更改行。无法解释为什么只打开了 3 个存储库,而我目前打开的存储库很小。
        【解决方案4】:

        对我来说,问题是我有很多未跟踪的文件。修改了我的 .gitignore 和 SourceTree 不再慢

        【讨论】:

          【解决方案5】:

          对我来说,这是设置中的“拼写检查提交消息”选项。甚至单击刻度线也需要 20 秒才能处理,但这是我经历的最后一次冻结。

          【讨论】:

          • +1 超级随机,但我在几个构建之前就遇到了问题,即使只有几个 repos,这已经完全解决了我的问题。
          【解决方案6】:
          1. 如果可能,将 git 文件夹移动到 SSD 驱动器(显着提高了我的 SourceTree 性能)。

          2. 避免有大量的存储,这确实会减慢 SourceTree。

          【讨论】:

          • 第一个怎么做?
          • 删除存储有帮助。为什么
          • 删除存储对我也有帮助。但是,我在存储库中只有 3 次存储。
          【解决方案7】:

          执行指定的 git 命令对我来说没有用。最终真正加速 SourceTree 的是在工具 > 选项菜单中禁用“拼写检查提交消息”。我还禁用了“从 gravatar.com 加载头像图像”选项。

          【讨论】:

          • 一天切换项目时的性能神秘下降(加载的存储库没有任何变化)。禁用拼写检查为我修复了它。感谢您的提示!
          • 禁用 gravatar 做到了!哇。大不同。
          【解决方案8】:

          我也有这个问题。我也有 avast,这对我有用,可能对你有用,也许对不同的 AV 有用。但我添加了 C:\Users\YOURNAME\AppData\Local\Atlassian\ 到我的 avast 排除目录,现在它运行得更快了!

          【讨论】:

          • 这解决了我同样的问题。我没有 Avast,但与 Windows 10 中的 Windows Defender 相同。终于现在快点了。谢谢
          • 使用 Bitdefender 时我也遇到了同样的情况
          【解决方案9】:

          我的源代码树中的任何操作都非常缓慢。提交、单击文件以查看更改、推送等。

          我发现我的杀毒软件 (avast) 是原因。我禁用了文件保护,源代码树立即生效。

          【讨论】:

          • 我发现启用 Avast 后速度会快很多,但不知道为什么。以为可能是防火墙,但在我的工作文件夹中添加了文件保护排除项,SourceTree 再次响应。作为奖励,我的本地虚拟主机环境也很快!
          • 哇,Mac 也一样。我下载了bitdefender 用于在 Mac 上测试防病毒软件,我的 ST 变得超级慢。非常感谢!!!
          • 我遇到了同样的问题,SourceTree 太慢了,无法使用。它在我更新到 Windows 10 后开始,我注意到涉及文件系统的所有内容都非常慢(特别是我的第二个硬盘驱动器)。一开始我是在责怪 Windows,但似乎 Avast 及其“文件系统盾牌”正在激怒这一点。我禁用了它,一切都恢复正常了!
          • Windows Defender 是罪魁祸首
          • 您说得对,埃米尔,您为我节省了很多时间!谢谢!是 Avast 导致了这个问题(例如,我等待 5 分钟从存储库中提取代码)。我禁用了“文件系统屏蔽”(Štít souborového systému),并且 sourcetree 没有问题了。
          【解决方案10】:

          我知道这是一个老问题,但你也可以试试这个:

          https://stackoverflow.com/a/24045966/371917

          $ git config --global core.preloadindex true
          $ git config --global core.fscache true
          $ git config --global gc.auto 256
          

          其次,这里有一篇解释git gc --aggressivemay not be a great idea的帖子。

          【讨论】:

          • 如果你有一个新版本的git,现在默认启用前两个。
          • 对不起,它不能修复性能,我几乎无法在分支之间切换。最新版本的 SourceTree 出现此问题
          • @Lunatikul 这也可能是 SourceTree 最新版本特有的问题。也许等待更新再试一次?
          • 是 Bitdefender 问题
          【解决方案11】:

          这可能对其他人有所帮助。我在使用 SourceTree 1.6.x 和 git 1.9.x 时遇到了响应缓慢的问题。将 git 降级到 1.8.3 并将 SourceTree 降级到 1.5.2 解决了这个问题。

          【讨论】:

          【解决方案12】:

          源代码树票证系统有一张关于已修复的类似错误的票证。 http://www.lifehacker.com.au/2015/01/6-month-old-critical-performance-bug-with-sourcetree-is-getting-attention/

          我从来没有一次使用过这么多 repos,并假设 sourcetree 不是为了在每次切换选项卡时处理这么多数据而构建的。我假设 sourcetree 需要刷新数据并从磁盘页面文件中读取和构建数据。

          尝试使用更少的项目,看看你仍然有同样的问题。

          如果您仍然遇到性能不足的问题,请尝试在您的存储库上运行 gc(垃圾收集器)并再次测试。

          git gc --aggressive 缩小存储库大小。

          【讨论】:

          • 'git gc --aggressive' 没有显着的帮助,但也没有伤害。
          • 更新:看到“垃圾收集”后略有改善,但并不引人注目。
          • SourceTree 又慢了...我想念旧版本:(
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多