7970
|
1 Template Usage
|
|
2
|
|
3 Mercurial allows you to customize output of commands through templates.
|
|
4 You can either pass in a template from the command line, via the
|
|
5 --template option, or select an existing template-style (--style).
|
|
6
|
|
7 You can customize output for any "log-like" command: log, outgoing,
|
|
8 incoming, tip, parents, heads and glog.
|
|
9
|
|
10 Four styles are packaged with Mercurial: default (the style used when no
|
|
11 explicit preference is passed), compact, changelog, and xml. Usage:
|
|
12
|
|
13 $ hg log -r1 --style changelog
|
|
14
|
|
15 A template is a piece of text, with markup to invoke variable expansion:
|
|
16
|
|
17 $ hg log -r1 --template "{node}\n"
|
|
18 b56ce7b07c52de7d5fd79fb89701ea538af65746
|
|
19
|
|
20 Strings in curly braces are called keywords. The availability of keywords
|
|
21 depends on the exact context of the templater. These keywords are usually
|
|
22 available for templating a log-like command:
|
|
23
|
|
24 author String. The unmodified author of the changeset.
|
|
25 bisect String. The changeset bisection status.
|
|
26 bookmarks List of strings. Any bookmarks associated with the
|
|
27 changeset.
|
|
28 branch String. The name of the branch on which the changeset was
|
|
29 committed.
|
|
30 branches List of strings. The name of the branch on which the
|
|
31 changeset was committed. Will be empty if the branch name
|
|
32 was default.
|
|
33 children List of strings. The children of the changeset.
|
|
34 date Date information. The date when the changeset was committed.
|
|
35 desc String. The text of the changeset description.
|
|
36 diffstat String. Statistics of changes with the following format:
|
|
37 "modified files: +added/-removed lines"
|
|
38 file_adds List of strings. Files added by this changeset.
|
|
39 file_copies List of strings. Files copied in this changeset with their
|
|
40 sources.
|
|
41 file_copies_switch
|
|
42 List of strings. Like "file_copies" but displayed only if
|
|
43 the --copied switch is set.
|
|
44 file_dels List of strings. Files removed by this changeset.
|
|
45 file_mods List of strings. Files modified by this changeset.
|
|
46 files List of strings. All files modified, added, or removed by
|
|
47 this changeset.
|
|
48 latesttag String. Most recent global tag in the ancestors of this
|
|
49 changeset.
|
|
50 latesttagdistance
|
|
51 Integer. Longest path to the latest tag.
|
|
52 node String. The changeset identification hash, as a 40
|
|
53 hexadecimal digit string.
|
|
54 phase String. The changeset phase name.
|
|
55 phaseidx Integer. The changeset phase index.
|
|
56 rev Integer. The repository-local changeset revision number.
|
|
57 tags List of strings. Any tags associated with the changeset.
|
|
58
|
|
59 The "date" keyword does not produce human-readable output. If you want to
|
|
60 use a date in your output, you can use a filter to process it. Filters are
|
|
61 functions which return a string based on the input variable. Be sure to
|
|
62 use the stringify filter first when you're applying a string-input filter
|
|
63 to a list-like input variable. You can also use a chain of filters to get
|
|
64 the desired output:
|
|
65
|
|
66 $ hg tip --template "{date|isodate}\n"
|
|
67 2008-08-21 18:22 +0000
|
|
68
|
|
69 List of filters:
|
|
70
|
|
71 addbreaks Any text. Add an XHTML "<br />" tag before the end of every
|
|
72 line except the last.
|
|
73 age Date. Returns a human-readable date/time difference between
|
|
74 the given date/time and the current date/time.
|
|
75 basename Any text. Treats the text as a path, and returns the last
|
|
76 component of the path after splitting by the path separator
|
|
77 (ignoring trailing separators). For example, "foo/bar/baz"
|
|
78 becomes "baz" and "foo/bar//" becomes "bar".
|
|
79 date Date. Returns a date in a Unix date format, including the
|
|
80 timezone: "Mon Sep 04 15:13:13 2006 0700".
|
|
81 domain Any text. Finds the first string that looks like an email
|
|
82 address, and extracts just the domain component. Example:
|
|
83 "User <user@example.com>" becomes "example.com".
|
|
84 email Any text. Extracts the first string that looks like an email
|
|
85 address. Example: "User <user@example.com>" becomes
|
|
86 "user@example.com".
|
|
87 emailuser Any text. Returns the user portion of an email address.
|
|
88 escape Any text. Replaces the special XML/XHTML characters "&", "<"
|
|
89 and ">" with XML entities.
|
|
90 fill68 Any text. Wraps the text to fit in 68 columns.
|
|
91 fill76 Any text. Wraps the text to fit in 76 columns.
|
|
92 firstline Any text. Returns the first line of text.
|
|
93 hex Any text. Convert a binary Mercurial node identifier into
|
|
94 its long hexadecimal representation.
|
|
95 hgdate Date. Returns the date as a pair of numbers: "1157407993
|
|
96 25200" (Unix timestamp, timezone offset).
|
|
97 isodate Date. Returns the date in ISO 8601 format: "2009-08-18 13:00
|
|
98 +0200".
|
|
99 isodatesec Date. Returns the date in ISO 8601 format, including
|
|
100 seconds: "2009-08-18 13:00:13 +0200". See also the
|
|
101 rfc3339date filter.
|
|
102 localdate Date. Converts a date to local date.
|
|
103 nonempty Any text. Returns '(none)' if the string is empty.
|
|
104 obfuscate Any text. Returns the input text rendered as a sequence of
|
|
105 XML entities.
|
|
106 person Any text. Returns the name before an email address,
|
|
107 interpreting it as per RFC 5322.
|
|
108 rfc3339date Date. Returns a date using the Internet date format
|
|
109 specified in RFC 3339: "2009-08-18T13:00:13+02:00".
|
|
110 rfc822date Date. Returns a date using the same format used in email
|
|
111 headers: "Tue, 18 Aug 2009 13:00:13 +0200".
|
|
112 short Changeset hash. Returns the short form of a changeset hash,
|
|
113 i.e. a 12 hexadecimal digit string.
|
|
114 shortbisect Any text. Treats "text" as a bisection status, and returns a
|
|
115 single-character representing the status (G: good, B: bad,
|
|
116 S: skipped, U: untested, I: ignored). Returns single space
|
|
117 if "text" is not a valid bisection status.
|
|
118 shortdate Date. Returns a date like "2006-09-18".
|
|
119 stringify Any type. Turns the value into text by converting values
|
|
120 into text and concatenating them.
|
|
121 strip Any text. Strips all leading and trailing whitespace.
|
|
122 stripdir Treat the text as path and strip a directory level, if
|
|
123 possible. For example, "foo" and "foo/bar" becomes "foo".
|
|
124 tabindent Any text. Returns the text, with every line except the first
|
|
125 starting with a tab character.
|
|
126 urlescape Any text. Escapes all "special" characters. For example,
|
|
127 "foo bar" becomes "foo%20bar".
|
|
128 user Any text. Returns a short representation of a user name or
|
|
129 email address.
|