diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1411,6 +1411,8 @@ class changeset_printer(object): self.ui.write(_("trouble: %s\n") % ', '.join(ctx.troubles()), label='log.trouble') + self._exthook(ctx) + if self.ui.debugflag: files = ctx.p1().status(ctx)[:3] for key, value in zip([# i18n: column positioning for "hg log" @@ -1457,6 +1459,11 @@ class changeset_printer(object): self.showpatch(ctx, matchfn) + def _exthook(self, ctx): + '''empty method used by extension as a hook point + ''' + pass + def showpatch(self, ctx, matchfn): if not matchfn: matchfn = self.matchfn diff --git a/tests/test-log-exthook.t b/tests/test-log-exthook.t new file mode 100644 --- /dev/null +++ b/tests/test-log-exthook.t @@ -0,0 +1,56 @@ +Test hg log changeset printer external hook +------------------------------------------- + + $ cat > $TESTTMP/logexthook.py < from mercurial import repair, commands + > from mercurial import cmdutil + > def rot13description(self, ctx): + > summary = "summary".encode('rot13') + > description = ctx.description().strip().splitlines()[0].encode('rot13') + > self.ui.write("%s: %s\n" % (summary, description)) + > def reposetup(ui, repo): + > cmdutil.changeset_printer._exthook = rot13description + > EOF + +Prepare the repository + + $ hg init empty + $ cd empty + $ touch ROOT + $ hg commit -A -m "Root" ROOT + + $ touch a b c + $ hg commit -A -m "Add A, B, C" a b c + +Check the log + + $ hg log --config extensions.t=$TESTTMP/logexthook.py + changeset: 1:70fc82b23320 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + fhzznel: Nqq N, O, P + summary: Add A, B, C + + changeset: 0:b00443a54871 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + fhzznel: Ebbg + summary: Root + +Check that exthook is working with graph log too + + $ hg log -G --config extensions.t=$TESTTMP/logexthook.py + @ changeset: 1:70fc82b23320 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | fhzznel: Nqq N, O, P + | summary: Add A, B, C + | + o changeset: 0:b00443a54871 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + fhzznel: Ebbg + summary: Root +