##// END OF EJS Templates
shortest: cache disambiguation revset...
shortest: cache disambiguation revset This makes it actually useful. In compared the time in my hg repo with 69.6k revisions and with a disambiguation revset of "not public()" that matches 563 visible revisions. I ran "time hg log -T '{shortest(node1,)}' -r 0:1000" (no revisions within the revset in that revision range). Before this patch, it took 57s and after it took 0.7s. Differential Revision: https://phab.mercurial-scm.org/D4039

File last commit:

r36061:3b4d14be default
r38889:3588e41f default
Show More
ext-phase-report.py
22 lines | 799 B | text/x-python | PythonLexer
/ tests / testlib / ext-phase-report.py
Boris Feld
phases: test phases tracking at the transaction level...
r33459 # tiny extension to report phase changes during transaction
from __future__ import absolute_import
def reposetup(ui, repo):
def reportphasemove(tr):
Gregory Szorc
py3: port ext-phase-report.py extension...
r36061 for rev, move in sorted(tr.changes[b'phases'].items()):
Boris Feld
phases: test phases tracking at the transaction level...
r33459 if move[0] is None:
Gregory Szorc
py3: port ext-phase-report.py extension...
r36061 ui.write((b'test-debug-phase: new rev %d: x -> %d\n'
Boris Feld
phases: test phases tracking at the transaction level...
r33459 % (rev, move[1])))
else:
Gregory Szorc
py3: port ext-phase-report.py extension...
r36061 ui.write((b'test-debug-phase: move rev %d: %d -> %d\n'
Boris Feld
phases: test phases tracking at the transaction level...
r33459 % (rev, move[0], move[1])))
class reportphaserepo(repo.__class__):
def transaction(self, *args, **kwargs):
tr = super(reportphaserepo, self).transaction(*args, **kwargs)
Gregory Szorc
py3: port ext-phase-report.py extension...
r36061 tr.addpostclose(b'report-phase', reportphasemove)
Boris Feld
phases: test phases tracking at the transaction level...
r33459 return tr
repo.__class__ = reportphaserepo