缩小 Mercurial 回购大小(特别是清单)

Shrinking Mercurial repo size (manifests in particular)

我们目前正在尝试将我们的 mercurial(在本例中是 Kiln 的古老版本)迁移到 BitBucket,我们立即 运行 遇到大小问题(如果您不知道,BitBucket 强加了一个相当慷慨的 2gb 回购限制 - 我们碰巧错过了)。

总之,前世的罪孽我已经洗清了:

即使执行了这些步骤,我 仍然 有一个非常大的清单文件,尽管为回购存储的 "data" 缩小到 "manageable" 大小(~600mb),我的清单文件将近 700mb。

一些附加信息:一般来说,我们练习 b运行ch-per-feature 并有两个 b运行ch 跟踪环境:

此工作流程的一个区别是默认值本身永远不会合并到发布中(la gitflow/hgflow)。这种单向流入违约会导致问题吗?

我们 "only" 有 120 个开放的 b运行ch 磁头,所以这似乎是可以管理的?

我显然在这里遗漏了一些步骤(否则回购完全被淹没了)。

为了将来参考,我遵循了 Tim 上面的建议。我的完整脚本最终看起来像这样:

hg --config format.generaldelta=1 clone --pull oldrepo oldrepo-generaldelta
hg --config format.generaldelta=1 clone --pull oldrepo-generaldata oldrepo-generaldelta2
hg convert --filemap filemap.txt oldrepo-generaldelta2 newrepo

正如 Tim 在他的链接回答中提到的那样 - 我们的清单从大约 700mb 减少到第二个克隆的大约 40mb。

Can I optimize a Mercurial clone?