##// END OF EJS Templates
template: compute dates in obsfatedate...
Boris Feld -
r33997:c35c0f54 default
parent child Browse files
Show More
@@ -602,6 +602,11 b' def successorsetverb(successorset):'
602 602 verb = 'split'
603 603 return verb
604 604
605 def markersdates(markers):
606 """returns the list of dates for a list of markers
607 """
608 return [m[4] for m in markers]
609
605 610 def markersusers(markers):
606 611 """ Returns a sorted list of markers users without duplicates
607 612 """
@@ -840,6 +840,34 b' def localdate(context, mapping, args):'
840 840 tzoffset = util.makedate()[1]
841 841 return (date[0], tzoffset)
842 842
843 @templatefunc('max(iterable)')
844 def max_(context, mapping, args, **kwargs):
845 """Return the max of an iterable"""
846 if len(args) != 1:
847 # i18n: "max" is a keyword
848 raise error.ParseError(_("max expects one arguments"))
849
850 iterable = evalfuncarg(context, mapping, args[0])
851 try:
852 return max(iterable)
853 except (TypeError, ValueError):
854 # i18n: "max" is a keyword
855 raise error.ParseError(_("max first argument should be an iterable"))
856
857 @templatefunc('min(iterable)')
858 def min_(context, mapping, args, **kwargs):
859 """Return the min of an iterable"""
860 if len(args) != 1:
861 # i18n: "min" is a keyword
862 raise error.ParseError(_("min expects one arguments"))
863
864 iterable = evalfuncarg(context, mapping, args[0])
865 try:
866 return min(iterable)
867 except (TypeError, ValueError):
868 # i18n: "min" is a keyword
869 raise error.ParseError(_("min first argument should be an iterable"))
870
843 871 @templatefunc('mod(a, b)')
844 872 def mod(context, mapping, args):
845 873 """Calculate a mod b such that a / b + a mod b == a"""
@@ -850,6 +878,23 b' def mod(context, mapping, args):'
850 878 func = lambda a, b: a % b
851 879 return runarithmetic(context, mapping, (func, args[0], args[1]))
852 880
881 @templatefunc('obsfatedate(markers)')
882 def obsfatedate(context, mapping, args):
883 """Compute obsfate related information based on markers (EXPERIMENTAL)"""
884 if len(args) != 1:
885 # i18n: "obsfatedate" is a keyword
886 raise error.ParseError(_("obsfatedate expects one arguments"))
887
888 markers = evalfuncarg(context, mapping, args[0])
889
890 try:
891 data = obsutil.markersdates(markers)
892 return templatekw.hybridlist(data, name='date', fmt='%d %d')
893 except (TypeError, KeyError):
894 # i18n: "obsfatedate" is a keyword
895 errmsg = _("obsfatedate first argument should be an iterable")
896 raise error.ParseError(errmsg)
897
853 898 @templatefunc('obsfateusers(markers)')
854 899 def obsfateusers(context, mapping, args):
855 900 """Compute obsfate related information based on markers (EXPERIMENTAL)"""
@@ -15,7 +15,8 b' Global setup'
15 15 > obsfatesuccessors = " as {join(successors, ", ")}"
16 16 > obsfateverb = "{obsfateverb(successors)}"
17 17 > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}"
18 > obsfate = "{obsfateverb}{obsfatesuccessors}{obsfateusers}; "
18 > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}"
19 > obsfate = "{obsfateverb}{obsfatesuccessors}{obsfateusers}{obsfatedate}; "
19 20 > [alias]
20 21 > tlog = log -G -T '{node|short}\
21 22 > {if(predecessors, "\n Predecessors: {predecessors}")}\
@@ -94,21 +95,21 b' Predecessors template should show curren'
94 95 o d004c8f274b9
95 96 |
96 97 | @ 471f378eab4c
97 |/ Obsfate: rewritten as 4:d004c8f274b9 by test1, test2;
98 |/ Obsfate: rewritten as 4:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
98 99 o ea207398892e
99 100
100 101 $ hg fatelog
101 102 o d004c8f274b9
102 103 |
103 104 | @ 471f378eab4c
104 |/ Obsfate: rewritten as 4:d004c8f274b9 by test1, test2;
105 |/ Obsfate: rewritten as 4:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
105 106 o ea207398892e
106 107
107 108 $ hg fatelog -v
108 109 o d004c8f274b9
109 110 |
110 111 | @ 471f378eab4c
111 |/ Obsfate: rewritten as 4:d004c8f274b9 by test1, test2;
112 |/ Obsfate: rewritten as 4:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
112 113 o ea207398892e
113 114
114 115 $ hg up 'desc(A1)' --hidden
@@ -131,7 +132,7 b' Predecessors template should show curren'
131 132 o d004c8f274b9
132 133 |
133 134 | @ a468dc9b3633
134 |/ Obsfate: rewritten as 4:d004c8f274b9 by test2;
135 |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
135 136 o ea207398892e
136 137
137 138 Predecessors template should show all the predecessors as we force their display
@@ -162,11 +163,11 b' with --hidden'
162 163 o d004c8f274b9
163 164 |
164 165 | @ a468dc9b3633
165 |/ Obsfate: rewritten as 4:d004c8f274b9 by test2;
166 |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
166 167 | x f137d23bb3e1
167 168 | |
168 169 | x 471f378eab4c
169 |/ Obsfate: rewritten as 3:a468dc9b3633 by test1;
170 |/ Obsfate: rewritten as 3:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000);
170 171 o ea207398892e
171 172
172 173
@@ -211,11 +212,11 b' visible.'
211 212 @ d004c8f274b9
212 213 |
213 214 | x a468dc9b3633
214 |/ Obsfate: rewritten as 4:d004c8f274b9 by test2;
215 |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
215 216 | x f137d23bb3e1
216 217 | |
217 218 | x 471f378eab4c
218 |/ Obsfate: rewritten as 3:a468dc9b3633 by test1;
219 |/ Obsfate: rewritten as 3:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000);
219 220 o ea207398892e
220 221
221 222 $ hg fatelogjson --hidden
@@ -319,7 +320,7 b' Predecessors template should show curren'
319 320 o 337fec4d2edc
320 321 |
321 322 | @ 471597cad322
322 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test;
323 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
323 324 o ea207398892e
324 325
325 326 $ hg up f257fde29c7a
@@ -360,7 +361,7 b' with --hidden'
360 361 o 337fec4d2edc
361 362 |
362 363 | x 471597cad322
363 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test;
364 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
364 365 o ea207398892e
365 366
366 367 $ hg fatelogjson --hidden
@@ -461,7 +462,7 b' Predecessors template should show curren'
461 462 o eb5a0daa2192
462 463 |
463 464 | @ 471f378eab4c
464 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test;
465 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
465 466 o ea207398892e
466 467
467 468 $ hg up 'desc(B0)' --hidden
@@ -490,9 +491,9 b' displayed'
490 491 o eb5a0daa2192
491 492 |
492 493 | @ 0dec01379d3b
493 | | Obsfate: rewritten as 3:eb5a0daa2192 by test;
494 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
494 495 | x 471f378eab4c
495 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test;
496 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
496 497 o ea207398892e
497 498
498 499 $ hg up 'desc(C0)'
@@ -528,9 +529,9 b' with --hidden'
528 529 @ eb5a0daa2192
529 530 |
530 531 | x 0dec01379d3b
531 | | Obsfate: rewritten as 3:eb5a0daa2192 by test;
532 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
532 533 | x 471f378eab4c
533 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test;
534 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
534 535 o ea207398892e
535 536
536 537
@@ -667,7 +668,7 b' Predecessors template should show curren'
667 668 | o fdf9bde5129a
668 669 |/
669 670 | @ 471f378eab4c
670 |/ Obsfate: rewritten as 2:fdf9bde5129a by test; rewritten as 4:019fadeab383 by test;
671 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
671 672 o ea207398892e
672 673
673 674 $ hg up 'desc(A1)'
@@ -723,11 +724,11 b' Predecessors template should the predece'
723 724 o 019fadeab383
724 725 |
725 726 | x 65b757b745b9
726 |/ Obsfate: rewritten as 4:019fadeab383 by test;
727 |/ Obsfate: rewritten as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
727 728 | @ fdf9bde5129a
728 729 |/
729 730 | x 471f378eab4c
730 |/ Obsfate: rewritten as 2:fdf9bde5129a by test; rewritten as 3:65b757b745b9 by test;
731 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
731 732 o ea207398892e
732 733
733 734
@@ -845,7 +846,7 b' Predecessors template should show curren'
845 846 o eb5a0daa2192
846 847 |
847 848 | @ 471f378eab4c
848 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test;
849 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
849 850 o ea207398892e
850 851
851 852 $ hg up 'desc(B0)' --hidden
@@ -873,9 +874,9 b' Predecessors template should both predec'
873 874 o eb5a0daa2192
874 875 |
875 876 | @ 0dec01379d3b
876 | | Obsfate: rewritten as 4:eb5a0daa2192 by test;
877 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
877 878 | x 471f378eab4c
878 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test;
879 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
879 880 o ea207398892e
880 881
881 882 $ hg up 'desc(B1)' --hidden
@@ -903,9 +904,9 b' Predecessors template should both predec'
903 904 o eb5a0daa2192
904 905 |
905 906 | @ b7ea6d14e664
906 | | Obsfate: rewritten as 4:eb5a0daa2192 by test;
907 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
907 908 | x 471f378eab4c
908 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test;
909 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
909 910 o ea207398892e
910 911
911 912 $ hg up 'desc(C0)'
@@ -954,11 +955,11 b' with --hidden'
954 955 @ eb5a0daa2192
955 956 |
956 957 | x b7ea6d14e664
957 | | Obsfate: rewritten as 4:eb5a0daa2192 by test;
958 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
958 959 | | x 0dec01379d3b
959 | |/ Obsfate: rewritten as 3:b7ea6d14e664 by test;
960 | |/ Obsfate: rewritten as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000);
960 961 | x 471f378eab4c
961 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test;
962 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
962 963 o ea207398892e
963 964
964 965
@@ -1082,7 +1083,7 b' Predecessors template should show curren'
1082 1083 o 7a230b46bf61
1083 1084 |
1084 1085 | @ 471f378eab4c
1085 |/ Obsfate: rewritten as 2:7a230b46bf61 by test;
1086 |/ Obsfate: rewritten as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1086 1087 o ea207398892e
1087 1088
1088 1089 $ hg up 'desc(A2)'
@@ -1119,7 +1120,7 b' with --hidden'
1119 1120 @ 7a230b46bf61
1120 1121 |
1121 1122 | x 471f378eab4c
1122 |/ Obsfate: rewritten as 2:7a230b46bf61 by test;
1123 |/ Obsfate: rewritten as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1123 1124 o ea207398892e
1124 1125
1125 1126
@@ -1194,9 +1195,9 b' Check templates'
1194 1195 o f897c6137566
1195 1196 |
1196 1197 | @ 0dec01379d3b
1197 | | Obsfate: rewritten as 3:f897c6137566 by test; rewritten as 1:471f378eab4c by test;
1198 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000); rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000);
1198 1199 | x 471f378eab4c
1199 |/ Obsfate: rewritten as 2:0dec01379d3b by test;
1200 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1200 1201 o ea207398892e
1201 1202
1202 1203
@@ -1452,7 +1453,7 b' Check templates'
1452 1453 | o ba2ed02b0c9a
1453 1454 | |
1454 1455 | x 4a004186e638
1455 |/ Obsfate: rewritten as 8:b18bc8331526 by test; rewritten as 9:0b997eb7ceee by test;
1456 |/ Obsfate: rewritten as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1456 1457 o dd800401bd8c
1457 1458 |
1458 1459 o f897c6137566
@@ -1525,17 +1526,17 b' Check templates'
1525 1526 | o ba2ed02b0c9a
1526 1527 | |
1527 1528 | x 4a004186e638
1528 |/ Obsfate: rewritten as 8:b18bc8331526 by test; rewritten as 9:0b997eb7ceee by test;
1529 |/ Obsfate: rewritten as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1529 1530 o dd800401bd8c
1530 1531 |
1531 1532 | x 9bd10a0775e4
1532 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test;
1533 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000);
1533 1534 o f897c6137566
1534 1535 |
1535 1536 | x 0dec01379d3b
1536 | | Obsfate: rewritten as 3:f897c6137566 by test; rewritten as 1:471f378eab4c by test;
1537 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000); rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000);
1537 1538 | x 471f378eab4c
1538 |/ Obsfate: rewritten as 2:0dec01379d3b by test;
1539 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1539 1540 o ea207398892e
1540 1541
1541 1542 $ hg fatelogjson --hidden
@@ -1604,7 +1605,7 b' Check templates'
1604 1605 o dd800401bd8c
1605 1606 |
1606 1607 | @ 9bd10a0775e4
1607 |/ Obsfate: split as 5:dd800401bd8c, 9:0b997eb7ceee, 10:eceed8f98ffc by test; split as 5:dd800401bd8c, 8:b18bc8331526, 10:eceed8f98ffc by test;
1608 |/ Obsfate: split as 5:dd800401bd8c, 9:0b997eb7ceee, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000); split as 5:dd800401bd8c, 8:b18bc8331526, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000);
1608 1609 o f897c6137566
1609 1610 |
1610 1611 o ea207398892e
General Comments 0
You need to be logged in to leave comments. Login now