sapling/mercurial/cext
Joerg Sonnenberger b1f2bd10ac phases: drop the list with phase of each rev, always comput phase sets
Change the C implementation of phasecache.loadphaserevs to provide only
the sets for draft and secret phase as well as the number of revisions
seen.

Change the pure Python implementation of the same functino to compute
the sets instead of the list of phases for each revision.

Change phasecache.phase to check the phase sets and assume public if the
revision is in neither draft nor secret set. This is computationally
slightly more expensive.

Change phasecache.getrevset for public() based queries to compute the
set of non-matching revisions and return the result as filtered
fullreposet. A shortcut is taken when no draft or secret revision
exists.

Bump the module version for the changed interface contract.

Overall, this saves around 16 Bytes per revision whenever the phasecache
is used, for the test case in issue5691 it is around 3MB. getrevset()
for a large repository is around 13% slower here, that seems an
acceptable trade off. Performance impact for phase() should be similar.

Differential Revision: https://phab.mercurial-scm.org/D1606
2017-12-06 15:46:41 +01:00
..
__init__.py policy: add "cext" package which will host CPython extension modules 2016-08-12 11:06:14 +09:00
base85.c cext: move braces for control statements to same line 2017-10-02 19:02:43 +01:00
bdiff.c cext: reorder #include 2017-10-02 19:06:00 +01:00
charencode.c parsers: protect some case-folding tables from clang-format 2015-04-21 16:02:23 -04:00
charencode.h encoding: add fast path of jsonescape() (issue5533) 2017-04-23 14:47:52 +09:00
diffhelpers.c diffhelpers: switch to policy importer 2016-08-13 12:15:49 +09:00
dirs.c cext: reorder #include 2017-10-02 19:06:00 +01:00
manifest.c cext: add /* header */ comment to all PyVarObject_HEAD_INIT() calls 2017-10-16 14:49:35 -04:00
mpatch.c cext: reorder #include 2017-10-02 19:06:00 +01:00
osutil.c cext: add /* header */ comment to all PyVarObject_HEAD_INIT() calls 2017-10-16 14:49:35 -04:00
parsers.c phases: drop the list with phase of each rev, always comput phase sets 2017-12-06 15:46:41 +01:00
pathencode.c parsers: switch to policy importer 2016-08-13 12:23:56 +09:00
revlog.c phases: drop the list with phase of each rev, always comput phase sets 2017-12-06 15:46:41 +01:00
util.h util: add clang-format control comment around struct and format macro 2017-10-04 11:02:44 -04:00