Show More
@@ -1649,7 +1649,10 b' class changeset_templater(changeset_prin' | |||
|
1649 | 1649 | self.t(self._parts['footer'], **props)) |
|
1650 | 1650 | |
|
1651 | 1651 | def logtemplatespec(tmpl, mapfile): |
|
1652 | return formatter.templatespec('changeset', tmpl, mapfile) | |
|
1652 | if mapfile: | |
|
1653 | return formatter.templatespec('changeset', tmpl, mapfile) | |
|
1654 | else: | |
|
1655 | return formatter.templatespec('', tmpl, None) | |
|
1653 | 1656 | |
|
1654 | 1657 | def _lookuplogtemplate(ui, tmpl, style): |
|
1655 | 1658 | """Find the template matching the given template spec or style |
@@ -1706,7 +1709,7 b' def show_changeset(ui, repo, opts, buffe' | |||
|
1706 | 1709 | |
|
1707 | 1710 | spec = _lookuplogtemplate(ui, opts.get('template'), opts.get('style')) |
|
1708 | 1711 | |
|
1709 | if not spec.tmpl and not spec.mapfile: | |
|
1712 | if not spec.ref and not spec.tmpl and not spec.mapfile: | |
|
1710 | 1713 | return changeset_printer(ui, repo, matchfn, opts, buffered) |
|
1711 | 1714 | |
|
1712 | 1715 | return changeset_templater(ui, repo, spec, matchfn, opts, buffered) |
@@ -391,11 +391,14 b' def lookuptemplate(ui, topic, tmpl):' | |||
|
391 | 391 | selected, all templates defined in the file will be loaded, and the |
|
392 | 392 | template matching the given topic will be rendered. No aliases will be |
|
393 | 393 | loaded from user config. |
|
394 | ||
|
395 | If no map file selected, all templates in [templates] section will be | |
|
396 | available as well as aliases in [templatealias]. | |
|
394 | 397 | """ |
|
395 | 398 | |
|
396 | 399 | # looks like a literal template? |
|
397 | 400 | if '{' in tmpl: |
|
398 |
return templatespec( |
|
|
401 | return templatespec('', tmpl, None) | |
|
399 | 402 | |
|
400 | 403 | # perhaps a stock style? |
|
401 | 404 | if not os.path.split(tmpl)[0]: |
@@ -405,9 +408,8 b' def lookuptemplate(ui, topic, tmpl):' | |||
|
405 | 408 | return templatespec(topic, None, mapname) |
|
406 | 409 | |
|
407 | 410 | # perhaps it's a reference to [templates] |
|
408 |
|
|
|
409 | if t: | |
|
410 | return templatespec(topic, templater.unquotestring(t), None) | |
|
411 | if ui.config('templates', tmpl): | |
|
412 | return templatespec(tmpl, None, None) | |
|
411 | 413 | |
|
412 | 414 | if tmpl == 'list': |
|
413 | 415 | ui.write(_("available styles: %s\n") % templater.stylelist()) |
@@ -420,10 +422,10 b' def lookuptemplate(ui, topic, tmpl):' | |||
|
420 | 422 | return templatespec(topic, None, os.path.realpath(tmpl)) |
|
421 | 423 | with util.posixfile(tmpl, 'rb') as f: |
|
422 | 424 | tmpl = f.read() |
|
423 |
return templatespec( |
|
|
425 | return templatespec('', tmpl, None) | |
|
424 | 426 | |
|
425 | 427 | # constant string? |
|
426 |
return templatespec( |
|
|
428 | return templatespec('', tmpl, None) | |
|
427 | 429 | |
|
428 | 430 | def loadtemplater(ui, spec, cache=None): |
|
429 | 431 | """Create a templater from either a literal template or loading from |
@@ -440,6 +442,8 b' def maketemplater(ui, tmpl, cache=None):' | |||
|
440 | 442 | def _maketemplater(ui, topic, tmpl, cache=None): |
|
441 | 443 | aliases = ui.configitems('templatealias') |
|
442 | 444 | t = templater.templater(cache=cache, aliases=aliases) |
|
445 | t.cache.update((k, templater.unquotestring(v)) | |
|
446 | for k, v in ui.configitems('templates')) | |
|
443 | 447 | if tmpl: |
|
444 | 448 | t.cache[topic] = tmpl |
|
445 | 449 | return t |
@@ -109,6 +109,14 b' defines a template, ``nodedate``, which ' | |||
|
109 | 109 | |
|
110 | 110 | $ hg log -r . -Tnodedate |
|
111 | 111 | |
|
112 | A template defined in ``templates`` section can also be referenced from | |
|
113 | another template:: | |
|
114 | ||
|
115 | $ hg log -r . -T "{rev} {nodedate}" | |
|
116 | ||
|
117 | but be aware that the keywords cannot be overridden by templates. For example, | |
|
118 | a template defined as ``templates.rev`` cannot be referenced as ``{rev}``. | |
|
119 | ||
|
112 | 120 | Examples |
|
113 | 121 | ======== |
|
114 | 122 |
@@ -209,14 +209,29 b' Make sure user/global hgrc does not affe' | |||
|
209 | 209 | |
|
210 | 210 | Add some simple styles to settings |
|
211 | 211 | |
|
212 |
$ |
|
|
213 | $ printf 'simple = "{rev}\\n"\n' >> .hg/hgrc | |
|
214 | $ printf 'simple2 = {rev}\\n\n' >> .hg/hgrc | |
|
212 | $ cat <<'EOF' >> .hg/hgrc | |
|
213 | > [templates] | |
|
214 | > simple = "{rev}\n" | |
|
215 | > simple2 = {rev}\n | |
|
216 | > rev = "should not precede {rev} keyword\n" | |
|
217 | > EOF | |
|
215 | 218 | |
|
216 | 219 | $ hg log -l1 -Tsimple |
|
217 | 220 | 8 |
|
218 | 221 | $ hg log -l1 -Tsimple2 |
|
219 | 222 | 8 |
|
223 | $ hg log -l1 -Trev | |
|
224 | should not precede 8 keyword | |
|
225 | $ hg log -l1 -T '{simple}' | |
|
226 | 8 | |
|
227 | ||
|
228 | Map file shouldn't see user templates: | |
|
229 | ||
|
230 | $ cat <<EOF > tmpl | |
|
231 | > changeset = 'nothing expanded:{simple}\n' | |
|
232 | > EOF | |
|
233 | $ hg log -l1 --style ./tmpl | |
|
234 | nothing expanded: | |
|
220 | 235 | |
|
221 | 236 | Test templates and style maps in files: |
|
222 | 237 |
General Comments 0
You need to be logged in to leave comments.
Login now