Show More
@@ -208,10 +208,22 b' def getlatesttags(repo, ctx, cache, patt' | |||||
208 | latesttags[rev] = ctx.date()[0], 0, [t for t in sorted(tags)] |
|
208 | latesttags[rev] = ctx.date()[0], 0, [t for t in sorted(tags)] | |
209 | continue |
|
209 | continue | |
210 | try: |
|
210 | try: | |
|
211 | ptags = [latesttags[p.rev()] for p in ctx.parents()] | |||
|
212 | if len(ptags) > 1: | |||
|
213 | if ptags[0][2] == ptags[1][2]: | |||
211 | # The tuples are laid out so the right one can be found by |
|
214 | # The tuples are laid out so the right one can be found by | |
212 | # comparison. |
|
215 | # comparison in this case. | |
213 | pdate, pdist, ptag = max( |
|
216 | pdate, pdist, ptag = max(ptags) | |
214 | latesttags[p.rev()] for p in ctx.parents()) |
|
217 | else: | |
|
218 | def key(x): | |||
|
219 | changessincetag = len(repo.revs('only(%d, %s)', | |||
|
220 | ctx.rev(), x[2][0])) | |||
|
221 | # Smallest number of changes since tag wins. Date is | |||
|
222 | # used as tiebreaker. | |||
|
223 | return [-changessincetag, x[0]] | |||
|
224 | pdate, pdist, ptag = max(ptags, key=key) | |||
|
225 | else: | |||
|
226 | pdate, pdist, ptag = ptags[0] | |||
215 | except KeyError: |
|
227 | except KeyError: | |
216 | # Cache miss - recurse |
|
228 | # Cache miss - recurse | |
217 | todo.append(rev) |
|
229 | todo.append(rev) |
@@ -2885,7 +2885,7 b' No tag set:' | |||||
2885 | o 0: null+1 |
|
2885 | o 0: null+1 | |
2886 |
|
2886 | |||
2887 |
|
2887 | |||
2888 | One common tag: longest path wins: |
|
2888 | One common tag: longest path wins for {latesttagdistance}: | |
2889 |
|
2889 | |||
2890 | $ hg tag -r 1 -m t1 -d '6 0' t1 |
|
2890 | $ hg tag -r 1 -m t1 -d '6 0' t1 | |
2891 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' |
|
2891 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | |
@@ -2904,7 +2904,7 b' One common tag: longest path wins:' | |||||
2904 | o 0: null+1 |
|
2904 | o 0: null+1 | |
2905 |
|
2905 | |||
2906 |
|
2906 | |||
2907 |
One ancestor tag: |
|
2907 | One ancestor tag: closest wins: | |
2908 |
|
2908 | |||
2909 | $ hg tag -r 2 -m t2 -d '7 0' t2 |
|
2909 | $ hg tag -r 2 -m t2 -d '7 0' t2 | |
2910 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' |
|
2910 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | |
@@ -2925,7 +2925,7 b' One ancestor tag: more recent wins:' | |||||
2925 | o 0: null+1 |
|
2925 | o 0: null+1 | |
2926 |
|
2926 | |||
2927 |
|
2927 | |||
2928 | Two branch tags: more recent wins: |
|
2928 | Two branch tags: more recent wins if same number of changes: | |
2929 |
|
2929 | |||
2930 | $ hg tag -r 3 -m t3 -d '8 0' t3 |
|
2930 | $ hg tag -r 3 -m t3 -d '8 0' t3 | |
2931 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' |
|
2931 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | |
@@ -2948,12 +2948,39 b' Two branch tags: more recent wins:' | |||||
2948 | o 0: null+1 |
|
2948 | o 0: null+1 | |
2949 |
|
2949 | |||
2950 |
|
2950 | |||
|
2951 | Two branch tags: fewest changes wins: | |||
|
2952 | ||||
|
2953 | $ hg tag -r 4 -m t4 -d '4 0' t4 # older than t2, but should not matter | |||
|
2954 | $ hg log -G --template "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" | |||
|
2955 | @ 9: t4+5,6 | |||
|
2956 | | | |||
|
2957 | o 8: t4+4,5 | |||
|
2958 | | | |||
|
2959 | o 7: t4+3,4 | |||
|
2960 | | | |||
|
2961 | o 6: t4+2,3 | |||
|
2962 | | | |||
|
2963 | o 5: t4+1,2 | |||
|
2964 | |\ | |||
|
2965 | | o 4: t4+0,0 | |||
|
2966 | | | | |||
|
2967 | | o 3: t3+0,0 | |||
|
2968 | | | | |||
|
2969 | o | 2: t2+0,0 | |||
|
2970 | |/ | |||
|
2971 | o 1: t1+0,0 | |||
|
2972 | | | |||
|
2973 | o 0: null+1,1 | |||
|
2974 | ||||
|
2975 | ||||
2951 | Merged tag overrides: |
|
2976 | Merged tag overrides: | |
2952 |
|
2977 | |||
2953 | $ hg tag -r 5 -m t5 -d '9 0' t5 |
|
2978 | $ hg tag -r 5 -m t5 -d '9 0' t5 | |
2954 | $ hg tag -r 3 -m at3 -d '10 0' at3 |
|
2979 | $ hg tag -r 3 -m at3 -d '10 0' at3 | |
2955 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' |
|
2980 | $ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | |
2956 |
@ 1 |
|
2981 | @ 11: t5+6 | |
|
2982 | | | |||
|
2983 | o 10: t5+5 | |||
2957 | | |
|
2984 | | | |
2958 | o 9: t5+4 |
|
2985 | o 9: t5+4 | |
2959 | | |
|
2986 | | | |
@@ -2965,7 +2992,7 b' Merged tag overrides:' | |||||
2965 | | |
|
2992 | | | |
2966 | o 5: t5+0 |
|
2993 | o 5: t5+0 | |
2967 | |\ |
|
2994 | |\ | |
2968 |
| o 4: |
|
2995 | | o 4: t4+0 | |
2969 | | | |
|
2996 | | | | |
2970 | | o 3: at3:t3+0 |
|
2997 | | o 3: at3:t3+0 | |
2971 | | | |
|
2998 | | | | |
@@ -2977,7 +3004,9 b' Merged tag overrides:' | |||||
2977 |
|
3004 | |||
2978 |
|
3005 | |||
2979 | $ hg log -G --template "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" |
|
3006 | $ hg log -G --template "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" | |
2980 |
@ 1 |
|
3007 | @ 11: t5+6,6 | |
|
3008 | | | |||
|
3009 | o 10: t5+5,5 | |||
2981 | | |
|
3010 | | | |
2982 | o 9: t5+4,4 |
|
3011 | o 9: t5+4,4 | |
2983 | | |
|
3012 | | | |
@@ -2989,7 +3018,7 b' Merged tag overrides:' | |||||
2989 | | |
|
3018 | | | |
2990 | o 5: t5+0,0 |
|
3019 | o 5: t5+0,0 | |
2991 | |\ |
|
3020 | |\ | |
2992 |
| o 4: |
|
3021 | | o 4: t4+0,0 | |
2993 | | | |
|
3022 | | | | |
2994 | | o 3: at3+0,0 t3+0,0 |
|
3023 | | o 3: at3+0,0 t3+0,0 | |
2995 | | | |
|
3024 | | | | |
@@ -3001,7 +3030,9 b' Merged tag overrides:' | |||||
3001 |
|
3030 | |||
3002 |
|
3031 | |||
3003 | $ hg log -G --template "{rev}: {latesttag('re:^t[13]$') % '{tag}, C: {changes}, D: {distance}'}\n" |
|
3032 | $ hg log -G --template "{rev}: {latesttag('re:^t[13]$') % '{tag}, C: {changes}, D: {distance}'}\n" | |
3004 |
@ 1 |
|
3033 | @ 11: t3, C: 9, D: 8 | |
|
3034 | | | |||
|
3035 | o 10: t3, C: 8, D: 7 | |||
3005 | | |
|
3036 | | | |
3006 | o 9: t3, C: 7, D: 6 |
|
3037 | o 9: t3, C: 7, D: 6 | |
3007 | | |
|
3038 | | | |
@@ -3044,7 +3075,7 b' if it is a relative path' | |||||
3044 | > EOF |
|
3075 | > EOF | |
3045 |
|
3076 | |||
3046 | $ hg -R latesttag tip |
|
3077 | $ hg -R latesttag tip | |
3047 | test 10:9b4a630e5f5f |
|
3078 | test 11:97e5943b523a | |
3048 |
|
3079 | |||
3049 | Test recursive showlist template (issue1989): |
|
3080 | Test recursive showlist template (issue1989): | |
3050 |
|
3081 | |||
@@ -3057,7 +3088,7 b' Test recursive showlist template (issue1' | |||||
3057 |
|
3088 | |||
3058 | $ hg -R latesttag log -r tip --style=style1989 |
|
3089 | $ hg -R latesttag log -r tip --style=style1989 | |
3059 | M|test |
|
3090 | M|test | |
3060 |
1 |
|
3091 | 11,test | |
3061 | branch: test |
|
3092 | branch: test | |
3062 |
|
3093 | |||
3063 | Test new-style inline templating: |
|
3094 | Test new-style inline templating: | |
@@ -3090,6 +3121,7 b' Test the strip function with chars speci' | |||||
3090 | $ hg log -R latesttag --template '{desc}\n' |
|
3121 | $ hg log -R latesttag --template '{desc}\n' | |
3091 | at3 |
|
3122 | at3 | |
3092 | t5 |
|
3123 | t5 | |
|
3124 | t4 | |||
3093 | t3 |
|
3125 | t3 | |
3094 | t2 |
|
3126 | t2 | |
3095 | t1 |
|
3127 | t1 | |
@@ -3103,6 +3135,7 b' Test the strip function with chars speci' | |||||
3103 | $ hg log -R latesttag --template '{strip(desc, "te")}\n' |
|
3135 | $ hg log -R latesttag --template '{strip(desc, "te")}\n' | |
3104 | at3 |
|
3136 | at3 | |
3105 | 5 |
|
3137 | 5 | |
|
3138 | 4 | |||
3106 | 3 |
|
3139 | 3 | |
3107 | 2 |
|
3140 | 2 | |
3108 | 1 |
|
3141 | 1 | |
@@ -3118,6 +3151,7 b' Test date format:' | |||||
3118 | $ hg log -R latesttag --template 'date: {date(date, "%y %m %d %S %z")}\n' |
|
3151 | $ hg log -R latesttag --template 'date: {date(date, "%y %m %d %S %z")}\n' | |
3119 | date: 70 01 01 10 +0000 |
|
3152 | date: 70 01 01 10 +0000 | |
3120 | date: 70 01 01 09 +0000 |
|
3153 | date: 70 01 01 09 +0000 | |
|
3154 | date: 70 01 01 04 +0000 | |||
3121 | date: 70 01 01 08 +0000 |
|
3155 | date: 70 01 01 08 +0000 | |
3122 | date: 70 01 01 07 +0000 |
|
3156 | date: 70 01 01 07 +0000 | |
3123 | date: 70 01 01 06 +0000 |
|
3157 | date: 70 01 01 06 +0000 |
General Comments 0
You need to be logged in to leave comments.
Login now