annotate mercurial/templates/map-cmdline.default @ 41722:37b33c34bf4f

templatekw: add a {negrev} keyword Revision numbers are getting much maligned for two reasons: they are too long in large repos and users get confused by their local-only nature. It just occurred to me that negative revision numbers avoid both of those problems. Since negative revision numbers change whenever the repo changes, it's much more obvious that they are a local-only convenience. Additionally, for the recent commits that we usually care about the most, negative revision numbers are always near zero. This commit adds a negrev templatekw to more easily expose negative revision numbers. It's not easy to reliably produce this output with existing keywords due to hidden commits while at the same time ensuring good performance.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Fri, 15 Feb 2019 14:43:31 -0500
parents 46f3ff64bea7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
1 # Base templates. Due to name clashes with existing keywords, we have
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
2 # to replace some keywords with 'lkeyword', for 'labelled keyword'
34714
f4aeb952ab77 templater: load template fragments from [templates] section in map file
Yuya Nishihara <yuya@tcha.org>
parents: 33783
diff changeset
3
f4aeb952ab77 templater: load template fragments from [templates] section in map file
Yuya Nishihara <yuya@tcha.org>
parents: 33783
diff changeset
4 [templates]
38947
f9a98075a37e templates: rename "user" to "luser" defined in default map file (API)
Yuya Nishihara <yuya@tcha.org>
parents: 34901
diff changeset
5 changeset = '{cset}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{ltroubles}{lobsfate}{summary}\n'
24304
6136704b975d templates: fix "log -q" output of default style
Yuya Nishihara <yuya@tcha.org>
parents: 22766
diff changeset
6 changeset_quiet = '{lnode}'
38947
f9a98075a37e templates: rename "user" to "luser" defined in default map file (API)
Yuya Nishihara <yuya@tcha.org>
parents: 34901
diff changeset
7 changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{ltroubles}{lobsfate}{lfiles}{lfile_copies_switch}{description}\n'
f9a98075a37e templates: rename "user" to "luser" defined in default map file (API)
Yuya Nishihara <yuya@tcha.org>
parents: 34901
diff changeset
8 changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{luser}{ldate}{ltroubles}{lobsfate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
9
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
10 # File templates
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
11 lfiles = '{if(files,
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
12 label("ui.note log.files",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
13 "files: {files}\n"))}'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
14
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
15 lfile_mods = '{if(file_mods,
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
16 label("ui.debug log.files",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
17 "files: {file_mods}\n"))}'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
18
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
19 lfile_adds = '{if(file_adds,
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
20 label("ui.debug log.files",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
21 "files+: {file_adds}\n"))}'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
22
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
23 lfile_dels = '{if(file_dels,
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
24 label("ui.debug log.files",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
25 "files-: {file_dels}\n"))}'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
26
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
27 lfile_copies_switch = '{if(file_copies_switch,
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
28 label("ui.note log.copies",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
29 "copies: {file_copies_switch
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
30 % ' {name} ({source})'}\n"))}'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
31
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
32 # General templates
34716
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
33 cset = '{labelcset("changeset: {rev}:{node|short}")}\n'
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
34 fullcset = '{labelcset("changeset: {rev}:{node}")}\n'
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
35
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
36 lphase = '{label("log.phase",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
37 "phase: {phase}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
38
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
39 parent = '{label("log.parent changeset.{phase}",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
40 "parent: {rev}:{node|formatnode}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
41
24304
6136704b975d templates: fix "log -q" output of default style
Yuya Nishihara <yuya@tcha.org>
parents: 22766
diff changeset
42 lnode = '{label("log.node",
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
43 "{rev}:{node|short}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
44
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
45 manifest = '{label("ui.debug log.manifest",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
46 "manifest: {rev}:{node}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
47
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
48 branch = '{label("log.branch",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
49 "branch: {branch}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
50
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
51 tag = '{label("log.tag",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
52 "tag: {tag}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
53
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
54 bookmark = '{label("log.bookmark",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
55 "bookmark: {bookmark}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
56
38947
f9a98075a37e templates: rename "user" to "luser" defined in default map file (API)
Yuya Nishihara <yuya@tcha.org>
parents: 34901
diff changeset
57 luser = '{label("log.user",
f9a98075a37e templates: rename "user" to "luser" defined in default map file (API)
Yuya Nishihara <yuya@tcha.org>
parents: 34901
diff changeset
58 "user: {author}")}\n'
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
59
24637
c1cb6523e968 templates-default: do not show description or summary if empty
Yuya Nishihara <yuya@tcha.org>
parents: 24304
diff changeset
60 summary = '{if(desc|strip, "{label('log.summary',
c1cb6523e968 templates-default: do not show description or summary if empty
Yuya Nishihara <yuya@tcha.org>
parents: 24304
diff changeset
61 'summary: {desc|firstline}')}\n")}'
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
62
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
63 ldate = '{label("log.date",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
64 "date: {date|date}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
65
33783
db6b666ce1e6 label: rename log.trouble into log.instability
Boris Feld <boris.feld@octobus.net>
parents: 33782
diff changeset
66 ltroubles = '{if(instabilities, "{label('log.instability',
33709
511d6ae462f3 template: rename troubles templatekw into instabilities
Boris Feld <boris.feld@octobus.net>
parents: 31702
diff changeset
67 'instability: {join(instabilities, ", ")}')}\n")}'
30713
6d0b1a69f98c templates: display evolution "troubles" in command line style
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 30696
diff changeset
68
22766
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
69 extra = '{label("ui.debug log.extra",
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
70 "extra: {key}={value|stringescape}")}\n'
0ded0f0b1c04 log: rewrite default template to use labels (issue2866)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15907
diff changeset
71
24637
c1cb6523e968 templates-default: do not show description or summary if empty
Yuya Nishihara <yuya@tcha.org>
parents: 24304
diff changeset
72 description = '{if(desc|strip, "{label('ui.note log.description',
c1cb6523e968 templates-default: do not show description or summary if empty
Yuya Nishihara <yuya@tcha.org>
parents: 24304
diff changeset
73 'description:')}
c1cb6523e968 templates-default: do not show description or summary if empty
Yuya Nishihara <yuya@tcha.org>
parents: 24304
diff changeset
74 {label('ui.note log.description',
c1cb6523e968 templates-default: do not show description or summary if empty
Yuya Nishihara <yuya@tcha.org>
parents: 24304
diff changeset
75 '{desc|strip}')}\n\n")}'
25514
9b1a8ce1f03b templates: add a default template style for status
Matt Mackall <mpm@selenic.com>
parents: 24637
diff changeset
76
39370
46f3ff64bea7 status: rename {copy} to {source} for compatibility with {file_copies} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 39369
diff changeset
77 status = '{status} {path|relpath}\n{if(source, " {source|relpath}\n")}'
34716
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
78
34853
962f7df21a73 obsfate: add obsfate to default mapfile
Boris Feld <boris.feld@octobus.net>
parents: 34717
diff changeset
79 # Obsfate templates, it would be removed once we introduce the obsfate
962f7df21a73 obsfate: add obsfate to default mapfile
Boris Feld <boris.feld@octobus.net>
parents: 34717
diff changeset
80 # template fragment
34901
ec765a71bd65 obsfate: rename obsfate into obsolete in default mapfile
Boris Feld <boris.feld@octobus.net>
parents: 34853
diff changeset
81 lobsfate = '{if(obsfate, "{label('log.obsfate', '{obsfate % "obsolete: {fate}\n"}')}")}'
34853
962f7df21a73 obsfate: add obsfate to default mapfile
Boris Feld <boris.feld@octobus.net>
parents: 34717
diff changeset
82
34716
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
83 [templatealias]
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
84 labelcset(expr) = label(separate(" ",
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
85 "log.changeset",
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
86 "changeset.{phase}",
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
87 if(obsolete, "changeset.obsolete"),
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
88 if(instabilities, "changeset.unstable"),
34717
06b52671552b templates: fix missed space between instability labels
Yuya Nishihara <yuya@tcha.org>
parents: 34716
diff changeset
89 join(instabilities
06b52671552b templates: fix missed space between instability labels
Yuya Nishihara <yuya@tcha.org>
parents: 34716
diff changeset
90 % "instability.{instability}", " ")),
34716
d36a36ca7bc2 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org>
parents: 34714
diff changeset
91 expr)