D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints

yuja (Yuya Nishihara) phabricator at mercurial-scm.org
Tue Dec 12 08:21:15 EST 2017


yuja added a comment.


  In https://phab.mercurial-scm.org/D1621#28387, @joerg.sonnenberger wrote:
  
  > The bitset version has shown already that optimizing this is worthwhile and can eliminate up to 10% of the total size of the transaction object.
  
  
  IIRC, Jun said a plain intbitset wouldn't be optimal for all scenarios, and I agree
  with that. Also, it isn't a standard Python library.
  
  I think the current way of recording phase change is too ad-hoc if it does iterate
  all incoming nodes to build `(old, new)` phases pairs. Instead, can't we reconstruct
  them from DAG + old/new phase roots, for example?
  
  If the current `tr.changes['phases']` is only used by hooks and third-party
  extensions, it can be opt-in feature.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D1621

To: joerg.sonnenberger, #hg-reviewers, quark
Cc: yuja, quark, mercurial-devel


More information about the Mercurial-devel mailing list