##// END OF EJS Templates
templater: introduce {latesttag()} function to match a pattern (issue4184)...
Matt Harbison -
r26485:43bf9471 default
parent child Browse files
Show More
@@ -102,6 +102,10 b' Some sample command line templates:'
102
102
103 $ hg log --template "{bookmarks % '{bookmark}{ifeq(bookmark, active, '*')} '}\n"
103 $ hg log --template "{bookmarks % '{bookmark}{ifeq(bookmark, active, '*')} '}\n"
104
104
105 - Find the previous release candidate tag, the distance and changes since the tag::
106
107 $ hg log -r . --template "{latesttag('re:^.*-rc$') % '{tag}, {changes}, {distance}'}\n"
108
105 - Mark the working copy parent with '@'::
109 - Mark the working copy parent with '@'::
106
110
107 $ hg log --template "{ifcontains(rev, revset('.'), '@')}\n"
111 $ hg log --template "{ifcontains(rev, revset('.'), '@')}\n"
@@ -512,6 +512,19 b' def label(context, mapping, args):'
512 # ignore args[0] (the label string) since this is supposed to be a a no-op
512 # ignore args[0] (the label string) since this is supposed to be a a no-op
513 yield args[1][0](context, mapping, args[1][1])
513 yield args[1][0](context, mapping, args[1][1])
514
514
515 def latesttag(context, mapping, args):
516 """:latesttag([pattern]): The global tags matching the given pattern on the
517 most recent globally tagged ancestor of this changeset."""
518 if len(args) > 1:
519 # i18n: "latesttag" is a keyword
520 raise error.ParseError(_("latesttag expects at most one argument"))
521
522 pattern = None
523 if len(args) == 1:
524 pattern = stringify(args[0][0](context, mapping, args[0][1]))
525
526 return templatekw.showlatesttags(pattern, **mapping)
527
515 def localdate(context, mapping, args):
528 def localdate(context, mapping, args):
516 """:localdate(date[, tz]): Converts a date to the specified timezone.
529 """:localdate(date[, tz]): Converts a date to the specified timezone.
517 The default is local date."""
530 The default is local date."""
@@ -733,6 +746,7 b' funcs = {'
733 "indent": indent,
746 "indent": indent,
734 "join": join,
747 "join": join,
735 "label": label,
748 "label": label,
749 "latesttag": latesttag,
736 "localdate": localdate,
750 "localdate": localdate,
737 "pad": pad,
751 "pad": pad,
738 "revset": revset,
752 "revset": revset,
@@ -2690,6 +2690,19 b' Merged tag overrides:'
2690 1: t1+0
2690 1: t1+0
2691 0: null+1
2691 0: null+1
2692
2692
2693 $ hg log --template "{rev}: {latesttag('re:^t[13]$') % '{tag}, C: {changes}, D: {distance}'}\n"
2694 10: t3, C: 8, D: 7
2695 9: t3, C: 7, D: 6
2696 8: t3, C: 6, D: 5
2697 7: t3, C: 5, D: 4
2698 6: t3, C: 4, D: 3
2699 5: t3, C: 3, D: 2
2700 4: t3, C: 1, D: 1
2701 3: t3, C: 0, D: 0
2702 2: t1, C: 1, D: 1
2703 1: t1, C: 0, D: 0
2704 0: null, C: 1, D: 1
2705
2693 $ cd ..
2706 $ cd ..
2694
2707
2695
2708
@@ -461,6 +461,13 b' check that we can merge tags that differ'
461 $ hg log -r '.' -T "{latesttag % '{latesttag}\n'}"
461 $ hg log -r '.' -T "{latesttag % '{latesttag}\n'}"
462 t4
462 t4
463 t6
463 t6
464 $ hg log -r '.' -T "{latesttag('t4') % 'T: {tag}, C: {changes}, D: {distance}\n'}"
465 T: t4, C: 2, D: 2
466 $ hg log -r '.' -T "{latesttag('re:\d') % 'T: {tag}, C: {changes}, D: {distance}\n'}"
467 T: t4, C: 2, D: 2
468 T: t6, C: 2, D: 2
469 $ hg log -r . -T '{join(latesttag(), "*")}\n'
470 t4*t6
464 $ hg ci -A -m4
471 $ hg ci -A -m4
465 adding f4
472 adding f4
466 $ hg log -r 'wdir()' -T "{changessincelatesttag} changes since {latesttag}\n"
473 $ hg log -r 'wdir()' -T "{changessincelatesttag} changes since {latesttag}\n"
General Comments 0
You need to be logged in to leave comments. Login now