我的项目的.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
答案 0 :(得分:7)
这是一个已知的python错误。由于python http库的工作方式,它首先发送数据,服务器回复它需要auth,然后重新发送数据。
使用最近的mercurial(从1.9开始),您可以使用替代的http库。只需在hgrc中添加以下内容:
[ui]
usehttp2 = true
答案 1 :(得分:1)
可能是您推送的存储库不支持压缩传输。你使用什么协议?如果它是http,我建议你观察对远程存储库的第一个请求(其中一个是关于确定远程repo提供的功能)。
如果您使用文件网址进行推送,那么您可能无法做到这一点。