annotate mercurial/templates/map-cmdline.show @ 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 b45c353ebbc7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32059
0ea1d9a750da show: add basic labels to work template
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
1 # TODO there are a few deficiencies in this file:
0ea1d9a750da show: add basic labels to work template
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
2 # * The "namespace" of the labels needs to be worked out. We currently
0ea1d9a750da show: add basic labels to work template
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
3 # piggyback on existing values so color works.
34877
eb24f1d1b50b show: use labelcset() template alias for work (and stack) views
Denis Laxalde <denis@laxalde.org>
parents: 34714
diff changeset
4
eb24f1d1b50b show: use labelcset() template alias for work (and stack) views
Denis Laxalde <denis@laxalde.org>
parents: 34714
diff changeset
5 %include map-cmdline.default
34714
f4aeb952ab77 templater: load template fragments from [templates] section in map file
Yuya Nishihara <yuya@tcha.org>
parents: 34190
diff changeset
6
f4aeb952ab77 templater: load template fragments from [templates] section in map file
Yuya Nishihara <yuya@tcha.org>
parents: 34190
diff changeset
7 [templates]
34190
4441c1113eb2 show: pass the minimum length for nodes as a template keyword
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33197
diff changeset
8 showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, nodelen)}\n'
33046
11f768258dcc show: construct changeset templater during dispatch
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32059
diff changeset
9
33050
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
10 showwork = '{cset_shortnode}{namespaces % cset_namespace} {cset_shortdesc}'
33197
c5a07a3abe7d show: implement "stack" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
11 showstack = '{showwork}'
33046
11f768258dcc show: construct changeset templater during dispatch
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32059
diff changeset
12
34877
eb24f1d1b50b show: use labelcset() template alias for work (and stack) views
Denis Laxalde <denis@laxalde.org>
parents: 34714
diff changeset
13 cset_shortnode = '{labelcset(shortest(node, nodelen))}'
33050
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
14
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
15 # Treat branch and tags specially so we don't display "default" or "tip"
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
16 cset_namespace = '{ifeq(namespace, "branches", names_branches, ifeq(namespace, "tags", names_tags, names_others))}'
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
17 names_branches = '{ifeq(branch, "default", "", " ({label('log.{colorname}', branch)})")}'
38450
b45c353ebbc7 show: use filter() function to strip "tip" tag
Yuya Nishihara <yuya@tcha.org>
parents: 38288
diff changeset
18 names_tags = '{if(filter_tags(names),
b45c353ebbc7 show: use filter() function to strip "tip" tag
Yuya Nishihara <yuya@tcha.org>
parents: 38288
diff changeset
19 " ({label('log.{colorname}', join(filter_tags(names), ' '))})")}'
33050
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
20 names_others = '{if(names, " ({label('log.{colorname}', join(names, ' '))})")}'
0a507da7d8ea show: show all namespaces in "work" view
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33046
diff changeset
21
33046
11f768258dcc show: construct changeset templater during dispatch
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32059
diff changeset
22 cset_shortdesc = '{label("log.description", desc|firstline)}'
38450
b45c353ebbc7 show: use filter() function to strip "tip" tag
Yuya Nishihara <yuya@tcha.org>
parents: 38288
diff changeset
23
b45c353ebbc7 show: use filter() function to strip "tip" tag
Yuya Nishihara <yuya@tcha.org>
parents: 38288
diff changeset
24 [templatealias]
b45c353ebbc7 show: use filter() function to strip "tip" tag
Yuya Nishihara <yuya@tcha.org>
parents: 38288
diff changeset
25 filter_tags(names) = filter(names, ifeq(name, 'tip', '', name))