[PATCH 3 of 4] mq: Add a "patch-name" field for log and a "patchname" templatekeyword
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sat Jun 11 07:32:01 CDT 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1307795151 -7200
# Node ID 12dce6407671dc3b52bd84d907e6bfeff14b407a
# Parent 2f70c7b232afab89e3dff1c94d013ae6c99c4a54
mq: Add a "patch-name" field for log and a "patchname" templatekeyword
Log entry is displayed at normal level.
diff -r 2f70c7b232af -r 12dce6407671 hgext/mq.py
--- a/hgext/mq.py Sat Jun 11 14:25:50 2011 +0200
+++ b/hgext/mq.py Sat Jun 11 14:25:51 2011 +0200
@@ -48,6 +48,7 @@
from mercurial import commands, cmdutil, hg, scmutil, util, revset
from mercurial import repair, extensions, url, error
from mercurial import patch as patchmod
+from mercurial import templatekw
import os, sys, re, errno, shutil
commands.norepo += " qclone"
@@ -3251,6 +3252,23 @@
ui.note(_("mq: (empty queue)\n"))
return r
+def mqctxlogfield(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)
+ entry = self.repo.mq.statusentrymap.get(ctx.node())
+ if entry is not None:
+ fields.append(('patch-name', entry.name))
+ return fields
+
+def mqshowpatchname(repo, ctx, templ, **args):
+ """:mq-patch: String. The unmodified mq patch name of the changeset."""
+ entry = repo.mq.statusentrymap.get(ctx.node())
+ if entry is not None:
+ return entry.name
+
def revsetmq(repo, subset, x):
"""``mq()``
Changesets managed by MQ.
@@ -3270,6 +3288,8 @@
extensions.wrapcommand(commands.table, 'import', mqimport)
extensions.wrapcommand(commands.table, 'summary', summary)
+ extensions.wrapfunction(cmdutil.changeset_printer, 'extensionsfields', mqctxlogfield)
+ templatekw.keywords['patchname'] = mqshowpatchname
entry = extensions.wrapcommand(commands.table, 'init', mqinit)
entry[1].extend(mqopt)
diff -r 2f70c7b232af -r 12dce6407671 tests/test-mq.t
--- a/tests/test-mq.t Sat Jun 11 14:25:50 2011 +0200
+++ b/tests/test-mq.t Sat Jun 11 14:25:51 2011 +0200
@@ -1362,9 +1362,12 @@
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
+ patch-name: empty
summary: imported patch empty
+ $ hg log -l1 --template '{patchname}\n'
+ empty
$ hg qref -d '0 0'
$ hg qpop
popping empty
More information about the Mercurial-devel
mailing list