Почему «hg push» намного больше, чем .hg? - PullRequest
7 голосов
/ 30 июня 2011

Каталог моего проекта .hg имеет размер 40 МБ. Если я hg push --verbose --debug в пустой удаленный репозиторий, я вижу, что он отправляет сотни МБ. Откуда берутся дополнительные накладные расходы?

ОБНОВЛЕНИЕ : hg bundle -a создает файл размером 35 МБ. Вот урезанная версия вывода, который я вижу:

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 ]

7 голосов
/ 01 июля 2011

Это известная ошибка в Python. Из-за того, как работает библиотека Python http, она сначала отправляет данные, сервер отвечает, что ему нужна авторизация, и повторно отправляет данные.

С недавним Mercurial (начиная с 1.9) вы можете использовать альтернативную библиотеку http. Просто добавьте в hgrc следующее:

[ui]
usehttp2 = true
1 голос
/ 30 июня 2011

Возможно, репозиторий, в который вы отправляете файл, не поддерживает сжатую передачу. Какой протокол вы используете? Если это http, я рекомендую посмотреть первые запросы к удаленному репозиторию (один из них касается определения возможностей, которые предлагает удаленное репо).

Если вы используете URL-адрес файла для отправки, вероятно, вы мало что можете с этим поделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...