1

问题

从我们的 Sourcerepo mercurial 存储库中提取更改过去只需要很少的时间,例如几秒钟。现在我需要足够的时间去喝一杯和小便(几分钟)。我认为它越来越慢,因为它是存储库历史记录大小的函数。这真的很烦人,我只需要喝很多水和尿尿,这开始影响我的工作效率。

语境

  • 回购位于Sourcerepo上。
  • 我正在使用基于密钥的身份验证通过 ssh SSH 连接到存储库。
  • 我使用 TortoiseHG 作为我选择的工具,尽管通过命令行同样可以看到这个问题。
  • 检查传入的变更集需要很长时间,花时间的是拉而不是更新。
  • 如果没有变化,只需要几秒钟就可以告诉我。
  • 我们使用了很多命名的分支,我们会在自己之后关闭它们,所以一次有 5-20 个打开,但历史上有数百个。
  • 我们在 repo 中有不到 3k 的修订。
  • 推的还是挺快的。

我认为 Hg 使用了某种 delta 编码来获取更改,它不应该花这么长时间。我想知道是否有我在 Hg 中缺少的选项,或者是否有其他人经历过这种行为?

提前致谢 :)

4

1 回答 1

0

你可以试试

  • hg incoming -v --time --profile --debug REPO-URL并读取输出 - 它可以揭示过程中最慢的部分
  • 将 Sourcerepo 克隆到本地存储库并针对此存储库测试传入(消除与网络相关的延迟)

如果没有任何帮助

  • 克隆 repo 的较小部分(从 1 到 tip)并测试这些截断克隆的传入以识别变更集(我希望如此),这带来了这个令人头疼的问题:我看不到如何在单个大型 repo 上使用 bisect 来测试incoming操作时间
于 2013-01-24T09:45:47.347 回答