[issue22992] Adding a git developer's guide to Mercurial to devguide

Demian Brecht report at bugs.python.org
Wed Dec 10 22:22:27 CET 2014


Demian Brecht added the comment:

After some further investigation, this seems to be what's happening. Note: this is based on a small amount of research and hasn't been validated by any mercurial devs, so it might be missing key pieces: In cases where a local topological head is unknown to a remote, the commit history of that head's branch is sent to the remote server for comparison. This /is/ chunked, but it seems that the number of commits sent per request is hardcoded to 200 (in Mercurial 2.9.2 at any rate). Because 200 commit hashes are added to the header, the size of the header is greater than what is allowed by the app server (I'm seeing > 8k headers when the discovery step runs with my changes) leading to the error responses when using HTTP(S). So, to encounter this issue, the following must be true:

* The user must have a topological head that the remote is unaware of
* The number of commits resulting from a DAG traversal must result in a header that exceeds the allowed limits of the given app server

Because the discovery requests are chunked, if the allowed header size was increased on the app server to account for the worst case scenario (200 commit hashes), this problem should be fixed and not encountered again as I previously thought would be the case.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22992>
_______________________________________


More information about the Python-bugs-list mailing list