transactions: convert changes['phases'] to list of ranges
Consecutive revisions are often in the same phase, especially public revisions. This means that a dictionary keyed by the revision for the phase transitions is highly redundant. Build a list of (range, (old, new)) entries instead and aggressively merge ranges with the same transition. For the test case in issue5691, this reduces memory use by ~20MB. Differential Revision: https://phab.mercurial-scm.org/D8125
Showing
- mercurial/localrepo.py 24 additions, 20 deletionsmercurial/localrepo.py
- mercurial/phases.py 93 additions, 8 deletionsmercurial/phases.py
- mercurial/scmutil.py 5 additions, 8 deletionsmercurial/scmutil.py
- tests/testlib/ext-phase-report.py 14 additions, 13 deletionstests/testlib/ext-phase-report.py
Loading
Please register or sign in to comment