Mercurial:是否可以将.hg文件夹压缩为几个大型BLOB?

Rom*_*man 1 performance mercurial clone

问题:通过网络克隆mercurial存储库需要太多时间(~ 12 minutes).我们怀疑这是因为.hg目录包含很多文件(> 15 000).

我们还有git更大的存储库,但克隆性能非常好1 minute.看起来是因为.git通过网络传输的文件夹只有几个文件(通常< 30).

问题: Mercurial是否支持"存储库压缩到单个blob"以及它是否支持如何启用它?

谢谢

UPDATE

Mercurial版本:1.8.3

访问方式:SAMBA分享(\\server\path\to\repo)

Mercurial安装在Linux机器上,可从Windows机器访问(通过Windows域登录)

krt*_*tek 5

Mercurial使用某种压缩方式在网络上发送数据(参见http://hgbook.red-bean.com/read/behind-the-scenes.html#id358828),但是通过使用Samba,你完全绕过了这种机制.Mercurial认为远程存储库位于本地文件系统上,使用的机制不同.

它在链接文档中明确指出每个数据在发送之前都作为一个整体压缩:

算法和整个流的压缩(而不是一次修改)的这种组合大大减少了要传输的字节数,从而在大多数网络上产生更好的网络性能.

因此,您将不会遇到使用"真实"网络协议的15'000个文件的问题.

顺便说一句,我强烈建议不要使用像Samba这样的东西来共享你的存储库.这确实是在寻找各种问题:

  • 当多个人同时尝试访问存储库时锁定问题
  • 提出正确的问题
  • 档案统计问题
  • 使用符号链接管理的问题

您可以在wiki上找到有关发布存储库的信息:PublishingRepositories(在那里您可以看到根本不建议使用samba)

要回答这个问题,AFAIK,没有办法压缩Mercurial元数据或类似的东西,比如减少文件数量.但是如果存储库正确发布,这将不再是一个问题.