[PATCH STABLE] templater: fix precedence of --style and --template options

Yuya Nishihara yuya at tcha.org
Tue Sep 30 10:03:48 CDT 2014


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1412086556 -32400
#      Tue Sep 30 23:15:56 2014 +0900
# Branch stable
# Node ID 8272dfdaa3985cb2ab59e479594a799e91da0395
# Parent  a111e460318af49aeb6578cf142a63426c5e764d
templater: fix precedence of --style and --template options

Since e3eb480a9391, --template option is ignored if --style is specified,
which is wrong according to the doc of show_changeset():

    Display format will be the first non-empty hit of:
    1. option 'template'
    2. option 'style'
    ...

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1098,7 +1098,7 @@ def gettemplate(ui, tmpl, style):
         else:
             style = util.expandpath(ui.config('ui', 'style', ''))
 
-    if style:
+    if not tmpl and style:
         mapfile = style
         if not os.path.split(mapfile)[0]:
             mapname = (templater.templatepath('map-cmdline.' + mapfile)
diff --git a/tests/test-command-template.t b/tests/test-command-template.t
--- a/tests/test-command-template.t
+++ b/tests/test-command-template.t
@@ -86,6 +86,11 @@ Test templates and style maps in files:
   $ hg log -l1 -T./map-simple
   8
 
+Template should precede style option
+
+  $ hg log -l1 --style default -T '{rev}\n'
+  8
+
 Default style is like normal output:
 
   $ hg log > log.out


More information about the Mercurial-devel mailing list