[PATCH 4 of 4] transplant: add a "transplant" field on default (verbose) default log

Pierre-Yves David pierre-yves.david at ens-lyon.org
Sat Jun 11 07:32:02 CDT 2011


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1307795152 -7200
# Node ID 4a1b4c1165b2a5e6d5f970d256aa5628b20bcba7
# Parent  12dce6407671dc3b52bd84d907e6bfeff14b407a
transplant: add a "transplant" field on default (verbose) default log.

diff -r 12dce6407671 -r 4a1b4c1165b2 hgext/transplant.py
--- a/hgext/transplant.py	Sat Jun 11 14:25:51 2011 +0200
+++ b/hgext/transplant.py	Sat Jun 11 14:25:52 2011 +0200
@@ -19,6 +19,7 @@
 from mercurial import bundlerepo, hg, merge, match
 from mercurial import patch, revlog, scmutil, util, error, cmdutil
 from mercurial import revset, templatekw
+from mercurial import extensions
 
 cmdtable = {}
 command = cmdutil.command(cmdtable)
@@ -624,9 +625,24 @@
     n = ctx.extra().get('transplant_source')
     return n and revlog.hex(n) or ''
 
+def transplantlogfield(orig, self, ctx, *args, **kwargs):
+    """Function to hook in the default changeset formater
+
+    This add a "mq-patch:" field to default changeset output (et log or out).
+    """
+    fields = orig(self, ctx, *args, **kwargs)
+    if self.ui.verbose:
+        source = ctx.extra().get('transplant_source')
+        if source:
+            ctxsrc = self.repo[source]
+            src = "%d:%s" % (ctxsrc.rev(), short(ctxsrc.node()))
+            fields.append(('transplant', src, 'ui.note log.transplant_source'))
+    return fields
+
 def extsetup(ui):
     revset.symbols['transplanted'] = revsettransplanted
     templatekw.keywords['transplanted'] = kwtransplanted
+    extensions.wrapfunction(cmdutil.changeset_printer, 'extensionsfields', transplantlogfield)
 
 # tell hggettext to extract docstrings from these functions:
 i18nfunctions = [revsettransplanted, kwtransplanted]
diff -r 12dce6407671 -r 4a1b4c1165b2 tests/test-transplant.t
--- a/tests/test-transplant.t	Sat Jun 11 14:25:51 2011 +0200
+++ b/tests/test-transplant.t	Sat Jun 11 14:25:52 2011 +0200
@@ -69,6 +69,27 @@
       "transplanted([set])"
         Transplanted changesets in set, or all transplanted changesets.
 
+test log field
+
+  $ hg log -r 5
+  changeset:   5:e234d668f844
+  parent:      1:d11e3596cc1a
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     b1
+  
+  $ hg log -r 5 -v
+  changeset:   5:e234d668f844
+  parent:      1:d11e3596cc1a
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  transplant:  2:37a1297eb21b
+  files:       b1
+  description:
+  b1
+  
+  
+
 test tranplanted keyword
 
   $ hg log --template '{rev} {transplanted}\n'


More information about the Mercurial-devel mailing list