Mercurial > hg
view tests/testlib/ext-phase-report.py @ 39994:6962ebc8f817
localrepo: capture repo interface factory functions as lambas
Previously, the list would hold a reference to the original function
and attempting to wrap the module function via extension wouldn't
result in the wrapped function being called, completely undermining
the expected behavior.
Differential Revision: https://phab.mercurial-scm.org/D4821
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 01 Oct 2018 09:05:40 -0700 |
parents | 3b4d14beac3d |
children | 2372284d9457 |
line wrap: on
line source
# tiny extension to report phase changes during transaction from __future__ import absolute_import def reposetup(ui, repo): def reportphasemove(tr): for rev, move in sorted(tr.changes[b'phases'].items()): if move[0] is None: ui.write((b'test-debug-phase: new rev %d: x -> %d\n' % (rev, move[1]))) else: ui.write((b'test-debug-phase: move rev %d: %d -> %d\n' % (rev, move[0], move[1]))) class reportphaserepo(repo.__class__): def transaction(self, *args, **kwargs): tr = super(reportphaserepo, self).transaction(*args, **kwargs) tr.addpostclose(b'report-phase', reportphasemove) return tr repo.__class__ = reportphaserepo