为什么“hg推”比.hg大得多?

时间:2011-06-30 19:31:42

标签: mercurial

我的项目的.hg目录是40MB。如果我hg push --verbose --debug到一个空的远程存储库,我看到它发送了数百个MB。额外的开销来自哪里?

更新hg bundle -a生成35MB文件。这是我看到的输出的精简版本:

pushing to https://jace.googlecode.com/hg/
using https://jace.googlecode.com/hg/
sending between command
using auth.default.* for authentication
jace.googlecode.com certificate successfully verified
sending capabilities command
using auth.default.* for authentication
capabilities: branchmap lookup unbundle=HG10UN,HG10UGZ,HG10BZ changegroupsubset
sending heads command
using auth.default.* for authentication
searching for changes
common changesets up to 71818a195bf5
sending branchmap command
[...]
bundling: <filenames>
sending unbundle command
sending xxx bytes
[...]
sending: xxx/xxx kb

2 个答案:

答案 0 :(得分:7)

这是一个已知的python错误。由于python http库的工作方式,它首先发送数据,服务器回复它需要auth,然后重新发送数据。

使用最近的mercurial(从1.9开始),您可以使用替代的http库。只需在hgrc中添加以下内容:

[ui]
usehttp2 = true

答案 1 :(得分:1)

可能是您推送的存储库不支持压缩传输。你使用什么协议?如果它是http,我建议你观察对远程存储库的第一个请求(其中一个是关于确定远程repo提供的功能)。

如果您使用文件网址进行推送,那么您可能无法做到这一点。