Pau*_*gar 8 optimization mercurial defragmentation
我的Mercurial克隆变得异常缓慢,可能是由于盘上碎片造成的.有没有办法优化它?
制作新克隆的明显方法,然后将我的MQ,保存的包,hgrc等复制到新克隆并删除旧克隆.但似乎有人可能在此之前遇到过这个问题并做了扩展吗?
如果清单变得特别大,那么它可能导致性能降低.Mercurial有一种替代的存储库格式 - generaldelta - 通常可以产生更小的清单.
您可以使用以下方法检查清单的大小:
ls -lh .hg/store/*manifest*
要从generaldelta获得最大价值:
安装Mercurial 2.7.2或更高版本(2.7.2包含对generaldelta中可能导致更大清单大小的错误的修复 - 但很有可能你不会遇到早期版本的错误).
执行hg --config format.generaldelta=1 clone --pull orig orig.gd.
这可能会使清单大小有所改善,但不会带来全部好处.
hg --config format.generaldelta=1 clone --pull orig.gd orig.gd.gd.克隆的克隆可以使清单大小得到更大的改善.这是因为当从generaldelta repo中提取时,将重新排序事物以优化清单大小.
作为generaldelta的潜在好处的一个例子,我最近转换了一个回复,即~55000 SVN提交(使用hgsubversion提取)加上~1000 Mercurial提交/合并/移植等.原始回购中的清单是~1.4GB.第一个克隆中的清单是~600MB.克隆克隆中的表现为~30MB.
关于generaldelta在线的信息并不多 - 在它成为默认格式之前还有很多工作要做,但它适用于许多项目.最初的几个谷歌搜索结果有一些信息,从它最初推出时,最近有一些关于mercurial-dev邮件列表的讨论.