D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-09 Thread yuja (Yuya Nishihara)
yuja added a comment. > Original code: 485s / 584MB > Set version: 501s / 582MB > intbitset: 478s / 563MB I'm not sure how to read this. Do we only get -2/584MB better space consumption against the original simplest implementation? REPOSITORY rHG Mercurial REVISION DETAIL

D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-08 Thread quark (Jun Wu)
quark accepted this revision. quark added a comment. That said, I think the usage of list of sets is smart and this change looks good to me. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1621 To: joerg.sonnenberger, #hg-reviewers, quark Cc: quark,

D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-08 Thread quark (Jun Wu)
quark added inline comments. INLINE COMMENTS > localrepo.py:1243 >**pycompat.strkwargs(args)) > if hook.hashook(repo.ui, 'pretxnclose-phase'): > cl = repo.unfiltered().changelog Since this hook is the only user of

D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. This is a Proof-of-Concept and with a follow-up in https://phab.mercurial-scm.org/D1622 to use a C implementation for the bitset. Original code: 485s / 584MB Set version: 501s / 582MB intbitset: 478s / 563MB REPOSITORY rHG Mercurial REVISION

D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY changes['phases'] used to be a dictionary mapping revisions to (old, new) tuples. The encoding is highly redundant and eats ~40MB for the test case