# HG changeset patch # User Pierre-Yves David # Date 1497890657 -7200 # Node ID 8503ba8b82e324bd4db49a671cc4eec6fe8fa75d # Parent 42abd3bd30ee9817056d6d364c7f6e34f14d156d# Parent 9c0f6b85c28f52533311b7b04440441174731bf4 merge: get stable change back into default diff -r 42abd3bd30ee -r 8503ba8b82e3 README --- a/README Mon Jun 19 03:13:35 2017 +0530 +++ b/README Mon Jun 19 18:44:17 2017 +0200 @@ -128,6 +128,11 @@ - stack: properly abort when and unknown topic is requested, - topic: fix issue5441 in the linear case, +6.4.1 - in progress +------------------- + + - obsfate: improve support for advanced template reformating + 6.4.0 -- 2017-06-16 ------------------- diff -r 42abd3bd30ee -r 8503ba8b82e3 hgext3rd/evolve/metadata.py --- a/hgext3rd/evolve/metadata.py Mon Jun 19 03:13:35 2017 +0530 +++ b/hgext3rd/evolve/metadata.py Mon Jun 19 18:44:17 2017 +0200 @@ -5,7 +5,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. -__version__ = '6.4.0' +__version__ = '6.4.1.dev' testedwith = '3.8.4 3.9.2 4.0.2 4.1.2 4.2' minimumhgversion = '3.8' buglink = 'https://bz.mercurial-scm.org/' diff -r 42abd3bd30ee -r 8503ba8b82e3 hgext3rd/evolve/templatekw.py --- a/hgext3rd/evolve/templatekw.py Mon Jun 19 03:13:35 2017 +0530 +++ b/hgext3rd/evolve/templatekw.py Mon Jun 19 18:44:17 2017 +0200 @@ -126,7 +126,6 @@ datetempleq = ' (at {min_date|isodate})' datetemplnoteq = ' (between {min_date|isodate} and {max_date|isodate})' datetempl = '{if(max_date, "{ifeq(min_date, max_date, "%s", "%s")}")}' % (datetempleq, datetemplnoteq) - newline = '\n' optionalusertempl = usertempl username = _getusername(ui) @@ -136,9 +135,9 @@ # Assemble them return { - 'obsfate_quiet': verbtempl + succtempl + newline, - 'obsfate': verbtempl + optionalusertempl + succtempl + newline, - 'obsfate_verbose': verbtempl + usertempl + succtempl + datetempl + newline + 'obsfate_quiet': verbtempl + succtempl, + 'obsfate': verbtempl + optionalusertempl + succtempl, + 'obsfate_verbose': verbtempl + usertempl + succtempl + datetempl, } @eh.templatekw("obsfate") @@ -198,7 +197,29 @@ else: name = "obsfate" - return templatekw.showlist(name, values, args, separator=' + ') + # Format a single value + def fmt(d): + nargs = args.copy() + nargs.update(d[name]) + return args['templ'](name, **nargs) + + # Generate a good enough string representation using templater + gen = [] + for d in values: + chunk = fmt({name: d}) + chunkstr = [] + + # Empty the generator + try: + while True: + chunkstr.append(chunk.next()) + except StopIteration: + pass + + gen.append("".join(chunkstr)) + gen = "; ".join(gen) + + return templatekw._hybrid(gen, values, lambda x: {name: x}, fmt) # copy from mercurial.obsolete with a small change to stop at first known changeset. diff -r 42abd3bd30ee -r 8503ba8b82e3 tests/test-evolve-templates.t --- a/tests/test-evolve-templates.t Mon Jun 19 03:13:35 2017 +0530 +++ b/tests/test-evolve-templates.t Mon Jun 19 18:44:17 2017 +0200 @@ -17,8 +17,8 @@ > {if(precursors, "\n semi-colon: {join(precursors, "; ")}")}\ > {if(successors, "\n Successors: {successors}")}\ > {if(successors, "\n semi-colon: {join(successors, "; ")}")}\ - > {if(obsfate, "\n Fate: {obsfate}")}\n' - > fatelog = log -G -T '{node|short}\n{if(obsfate, " Obsfate: {obsfate}\n")}' + > {if(obsfate, "\n Fate: {join(obsfate, "\n Fate: ")}\n")}\n' + > fatelog = log -G -T '{node|short}\n{if(obsfate, " Obsfate: {join(obsfate, "; ")}\n\n")}' > fatelogjson = log -G -T '{node|short} {obsfate|json}\n' > EOF @@ -660,7 +660,7 @@ |/ Successors: [fdf9bde5129a], [019fadeab383] | semi-colon: [fdf9bde5129a]; [019fadeab383] | Fate: rewritten as fdf9bde5129a - | rewritten as 019fadeab383 + | Fate: rewritten as 019fadeab383 | o ea207398892e @@ -670,8 +670,7 @@ | o fdf9bde5129a |/ | @ 471f378eab4c - |/ Obsfate: rewritten as fdf9bde5129a - | rewritten as 019fadeab383 + |/ Obsfate: rewritten as fdf9bde5129a; rewritten as 019fadeab383 | o ea207398892e @@ -714,7 +713,7 @@ |/ Successors: [fdf9bde5129a], [65b757b745b9] | semi-colon: [fdf9bde5129a]; [65b757b745b9] | Fate: rewritten as fdf9bde5129a - | rewritten as 65b757b745b9 + | Fate: rewritten as 65b757b745b9 | o ea207398892e @@ -727,8 +726,7 @@ | @ fdf9bde5129a |/ | x 471f378eab4c - |/ Obsfate: rewritten as fdf9bde5129a - | rewritten as 65b757b745b9 + |/ Obsfate: rewritten as fdf9bde5129a; rewritten as 65b757b745b9 | o ea207398892e