我可以只克隆存储库的最新变更集而不是整个历史记录吗?

时间:2014-02-13 18:22:58

标签: mercurial shallow-clone

我必须使用拥有数百万行代码和数十万个更改集的hg存储库。你可以想象,这真的会减慢mercurial和TortoiseHg的速度。

我是否可以创建一个只有最新几千个变更集的本地存储库?

这不仅有希望让事情变得更加快捷,而且还可能为我节省一些硬盘空间。

3 个答案:

答案 0 :(得分:7)

不,你不能,但你可以优化你的本地克隆。看看我对https://stackoverflow.com/a/19294645/479199的回答。

有一些关于浅层克隆的工作,但它仍然是一项正在进行中的工作(并且似乎没有太大进展):

https://www.mercurial-scm.org/wiki/ShallowClone

答案 1 :(得分:6)

似乎Facebook发布了一个应该解决这个问题的扩展程序。

请参阅https://bitbucket.org/facebook/remotefilelog

答案 2 :(得分:5)

不,你不能。这被称为“浅克隆”,它没有实现/支持。数百万行代码和数千个变更集并不是特别大,一旦你克隆了它,几乎每一个动作都应该接近瞬间。

此外,.hg目录中的压缩二进制增量通常小于工作目录中未压缩代码的全部,因此节省的空间也不应太大。

一旦克隆了repo,请确保在本地克隆的同一台机器上进行任何进一步的克隆,您将永远不必等待整个repo再次克隆。