# HG changeset patch # User Pierre-Yves David # Date 1497633758 -7200 # Node ID 3d432af2f6cd3d2be12d0f3bce5c11c99cbf2ef4 # Parent a3fbe5293bf65928efbcf4835a1381497d6a0983# Parent fd35b428edfcb000a4ca7c871292cd9c91f7cfec merge with default Integrate new development around obsfate. diff -r a3fbe5293bf6 -r 3d432af2f6cd hgext3rd/evolve/obshistory.py --- a/hgext3rd/evolve/obshistory.py Fri Jun 16 11:32:21 2017 +0200 +++ b/hgext3rd/evolve/obshistory.py Fri Jun 16 19:22:38 2017 +0200 @@ -629,11 +629,13 @@ def _successorsetverb(successorset, markers): """ Return the verb summarizing the successorset """ - # XXX we need to handle prune markers at some point. - if not markers: - return {'verb': 'pruned'} - - return {'verb': 'rewritten'} + if not successorset: + verb = 'pruned' + elif len(successorset) == 1: + verb = 'rewritten' + else: + verb = 'split' + return {'verb': verb} FORMATSSETSFUNCTIONS = [ _successorsetdates, @@ -641,7 +643,7 @@ _successorsetverb ] -def _successorsetallmarkers(successorset, pathscache): +def successorsetallmarkers(successorset, pathscache): """compute all successors of a successorset. pathscache must contains all successors starting from selected nodes @@ -669,11 +671,24 @@ return markers -def _preparesuccessorset(successorset, pathscache): +def preparesuccessorset(successorset, rawmarkers): """ For a successor set, get all related markers, compute the set of user, the min date and the max date """ - markers = _successorsetallmarkers(successorset, pathscache) + hex = nodemod.hex + + successorset = [hex(n) for n in successorset] + + # hex the binary nodes in the markers + markers = [] + for m in rawmarkers: + hexprec = hex(m[0]) + hexsucs = tuple(hex(n) for n in m[1]) + hexparents = None + if m[5] is not None: + hexparents = tuple(hex(n) for n in m[5]) + newmarker = (hexprec, hexsucs) + m[2:5] + (hexparents,) + m[6:] + markers.append(newmarker) # Format basic data data = { diff -r a3fbe5293bf6 -r 3d432af2f6cd hgext3rd/evolve/templatekw.py --- a/hgext3rd/evolve/templatekw.py Fri Jun 16 11:32:21 2017 +0200 +++ b/hgext3rd/evolve/templatekw.py Fri Jun 16 19:22:38 2017 +0200 @@ -9,6 +9,7 @@ """ from . import ( + error, exthelper, obshistory ) @@ -65,18 +66,18 @@ @eh.templatekw("precursors") def shownextvisibleprecursors(repo, ctx, **args): - """Returns a string containing the list if the closest successors - displayed + """Returns a string containing the list of the closest precursors """ precursors = sorted(closestprecursors(repo, ctx.node())) + precursors = [node.hex(p) for p in precursors] # <= hg-4.1 requires an explicite gen. # we can use None once the support is dropped # # They also requires an iterator instead of an iterable. - gen = iter(" ".join(map(node.short, precursors))) + gen = iter(" ".join(p[:12] for p in precursors)) return templatekw._hybrid(gen.__iter__(), precursors, lambda x: {'precursor': x}, - lambda d: "%s" % node.short(d['precursor'])) + lambda d: d['precursor'][:12]) def closestsuccessors(repo, nodeid): """ returns the closest visible successors sets instead. @@ -85,18 +86,20 @@ @eh.templatekw("successors") def shownextvisiblesuccessors(repo, ctx, templ, **args): - """Returns a string of sets of successors for a changectx in this format: - [ctx1, ctx2], [ctx3] if ctx has been splitted into ctx1 and ctx2 while - also diverged into ctx3""" + """Returns a string of sets of successors for a changectx + + Format used is: [ctx1, ctx2], [ctx3] if ctx has been splitted into ctx1 and + ctx2 while also diverged into ctx3""" if not ctx.obsolete(): return '' ssets, _ = closestsuccessors(repo, ctx.node()) + ssets = [[node.hex(n) for n in ss] for ss in ssets] data = [] gen = [] for ss in ssets: - subgen = '[%s]' % ', '.join(map(node.short, ss)) + subgen = '[%s]' % ', '.join(n[:12] for n in ss) gen.append(subgen) h = templatekw._hybrid(iter(subgen), ss, lambda x: {'successor': x}, lambda d: "%s" % d["successor"]) @@ -106,7 +109,14 @@ return templatekw._hybrid(iter(gen), data, lambda x: {'successorset': x}, lambda d: d["successorset"]) -def obsfatedefaulttempl(): +def _getusername(ui): + """the default username in the config or None""" + try: + return ui.username() + except error.Abort: # no easy way to avoid ui raising Abort here :-/ + return None + +def obsfatedefaulttempl(ui): """ Returns a dict with the default templates for obs fate """ # Prepare templates @@ -118,10 +128,16 @@ datetempl = '{if(max_date, "{ifeq(min_date, max_date, "%s", "%s")}")}' % (datetempleq, datetemplnoteq) newline = '\n' + optionalusertempl = usertempl + username = _getusername(ui) + if username is not None: + optionalusertempl = ('{ifeq(join(users, "\0"), "%s", "", "%s")}' + % (username, usertempl)) + # Assemble them return { 'obsfate_quiet': verbtempl + succtempl + newline, - 'obsfate': verbtempl + usertempl + succtempl + newline, + 'obsfate': verbtempl + optionalusertempl + succtempl + newline, 'obsfate_verbose': verbtempl + usertempl + succtempl + datetempl + newline } @@ -137,14 +153,31 @@ if successorssets == []: successorssets = [[]] + succsmap = repo.obsstore.successors + fullsuccessorsets = [] # successor set + markers + for sset in successorssets: + if sset: + markers = obshistory.successorsetallmarkers(sset, pathcache) + fullsuccessorsets.append((sset, markers)) + else: + # XXX we do not catch all prune markers (eg rewritten then pruned) + # (fix me later) + foundany = False + for mark in succsmap.get(ctx.node(), ()): + if not mark[1]: + foundany = True + fullsuccessorsets.append((sset, [mark])) + if not foundany: + fullsuccessorsets.append(([], [])) + values = [] - for successorset in successorssets: - raw = obshistory._preparesuccessorset(successorset, pathcache) + for sset, rawmarkers in fullsuccessorsets: + raw = obshistory.preparesuccessorset(sset, rawmarkers) # As we can't do something like # "{join(map(nodeshort, successors), ', '}" in template, manually # create a correct textual representation - gen = ', '.join(map(node.short, raw['successors'])) + gen = ', '.join(n[:12] for n in raw['successors']) makemap = lambda x: {'successor': x} joinfmt = lambda d: "%s" % d['successor'] @@ -154,7 +187,7 @@ values.append(raw) # Insert default obsfate templates - args['templ'].cache.update(obsfatedefaulttempl()) + args['templ'].cache.update(obsfatedefaulttempl(repo.ui)) if repo.ui.quiet: name = "obsfate_quiet" diff -r a3fbe5293bf6 -r 3d432af2f6cd tests/test-evolve-templates.t --- a/tests/test-evolve-templates.t Fri Jun 16 11:32:21 2017 +0200 +++ b/tests/test-evolve-templates.t Fri Jun 16 19:22:38 2017 +0200 @@ -117,6 +117,25 @@ | o ea207398892e + +(check json) + + $ hg log -GT '{precursors|json}\n' + o ["471f378eab4c5e25f6c77f785b27c936efb22874"] + | + | @ [] + |/ + o [] + + + $ hg log -GT '{successors|json}\n' + o "" + | + | @ [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]] + |/ + o "" + + $ hg up 'desc(A1)' --hidden 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (a468dc9b3633) @@ -148,7 +167,7 @@ | Fate: rewritten by test2 as d004c8f274b9 | | x f137d23bb3e1 - | | Fate: pruned + | | Fate: pruned by test1 | | | x 471f378eab4c |/ Successors: [a468dc9b3633] @@ -184,7 +203,7 @@ | Fate: rewritten by test2 as d004c8f274b9 | | x f137d23bb3e1 - | | Fate: pruned + | | Fate: pruned by test1 | | | x 471f378eab4c |/ Successors: [a468dc9b3633] @@ -206,7 +225,7 @@ |/ Obsfate: rewritten by test2 as d004c8f274b9 (at *) (glob) | | x f137d23bb3e1 - | | Obsfate: pruned + | | Obsfate: pruned by test1 (at *) (glob) | | | x 471f378eab4c |/ Obsfate: rewritten by test1 as a468dc9b3633 (at *) (glob) @@ -217,11 +236,11 @@ $ hg fatelogjson --hidden @ d004c8f274b9 "" | - | x a468dc9b3633 [{"markers": [["\udca4h\u071b63\udc8b\u0014\udcfd\udcb7\udc82_U\udcce=\udcf4\udce7\u0015\u0017\udcad", ["\udcd0\u0004\udcc8\udcf2t\udcb9\udcecH\nG\udca9\u003c\u0010\udcda\udcc5\udcee\udce6:\udcdbx"], 0, [["ef1", "1"], ["user", "test2"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcd0\u0004\udcc8\udcf2t\udcb9\udcecH\nG\udca9\u003c\u0010\udcda\udcc5\udcee\udce6:\udcdbx"], "users": ["test2"], "verb": "rewritten"}] (glob) + | x a468dc9b3633 [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["user", "test2"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], "users": ["test2"], "verb": "rewritten"}] (glob) |/ - | x f137d23bb3e1 [{"markers": [], "successors": [], "verb": "pruned"}] + | x f137d23bb3e1 [{"markers": [["f137d23bb3e11dc1daeb6264fac9cb2433782e15", [], 0, [["ef1", "0"], ["user", "test1"]], [*, *], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]], "max_date": [*, *], "min_date": [*, *], "successors": [], "users": ["test1"], "verb": "pruned"}] (glob) | | - | x 471f378eab4c [{"markers": [["G\u001f7\udc8e\udcabL^%\udcf6\udcc7\u007fx['\udcc96\udcef\udcb2(t", ["\udca4h\u071b63\udc8b\u0014\udcfd\udcb7\udc82_U\udcce=\udcf4\udce7\u0015\u0017\udcad"], 0, [["ef1", "9"], ["user", "test1"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udca4h\u071b63\udc8b\u0014\udcfd\udcb7\udc82_U\udcce=\udcf4\udce7\u0015\u0017\udcad"], "users": ["test1"], "verb": "rewritten"}] (glob) + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["user", "test1"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], "users": ["test1"], "verb": "rewritten"}] (glob) |/ o ea207398892e "" @@ -327,7 +346,7 @@ | @ 471597cad322 |/ Successors: [337fec4d2edc, f257fde29c7a] | semi-colon: [337fec4d2edc, f257fde29c7a] - | Fate: rewritten by test as 337fec4d2edc, f257fde29c7a + | Fate: split as 337fec4d2edc, f257fde29c7a | o ea207398892e @@ -337,7 +356,7 @@ o 337fec4d2edc | | @ 471597cad322 - |/ Obsfate: rewritten by test as 337fec4d2edc, f257fde29c7a + |/ Obsfate: split as 337fec4d2edc, f257fde29c7a | o ea207398892e @@ -366,7 +385,7 @@ | x 471597cad322 |/ Successors: [337fec4d2edc, f257fde29c7a] | semi-colon: [337fec4d2edc, f257fde29c7a] - | Fate: rewritten by test as 337fec4d2edc, f257fde29c7a + | Fate: split as 337fec4d2edc, f257fde29c7a | o ea207398892e @@ -376,7 +395,7 @@ o 337fec4d2edc | | x 471597cad322 - |/ Obsfate: rewritten by test as 337fec4d2edc, f257fde29c7a + |/ Obsfate: split as 337fec4d2edc, f257fde29c7a | o ea207398892e @@ -386,7 +405,7 @@ | o 337fec4d2edc "" | - | x 471597cad322 [{"markers": [["G\\u0015\\udc97\\udcca\\udcd3\\"\\udcd1\\udcf6Y\\udcbb\\u0016\\udc97Q\\udcbe\\udc913\\udcda\\udcd9.\\udcf3", ["3\\u007f\\udcecM.\\udcdc\\udcf0\\udce7\\udca4g\\udce3_\\udc81\\udc824\\udcbcb\\u0000h\\udcb5", "\\udcf2W\\udcfd\\udce2\\udc9cz\\udc84|\\udc9b`\\u007fn\\udc95\\udc86V\\udcd0\\udcdf\\u000f\\udcb1\\\\"], 0, [["ef1", "12"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["3\\u007f\\udcecM.\\udcdc\\udcf0\\udce7\\udca4g\\udce3_\\udc81\\udc824\\udcbcb\\u0000h\\udcb5", "\\udcf2W\\udcfd\\udce2\\udc9cz\\udc84|\\udc9b`\\u007fn\\udc95\\udc86V\\udcd0\\udcdf\\u000f\\udcb1\\\\"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 471597cad322 [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["ef1", "12"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], "users": ["test"], "verb": "split"}] (glob) |/ o ea207398892e "" @@ -461,7 +480,7 @@ | @ 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -469,7 +488,7 @@ o eb5a0daa2192 | | @ 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e @@ -487,12 +506,12 @@ | @ 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten by test as eb5a0daa2192 + | | Fate: rewritten as eb5a0daa2192 | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -500,10 +519,10 @@ o eb5a0daa2192 | | @ 0dec01379d3b - | | Obsfate: rewritten by test as eb5a0daa2192 + | | Obsfate: rewritten as eb5a0daa2192 | | | x 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e @@ -527,12 +546,12 @@ | x 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten by test as eb5a0daa2192 + | | Fate: rewritten as eb5a0daa2192 | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -540,10 +559,10 @@ @ eb5a0daa2192 | | x 0dec01379d3b - | | Obsfate: rewritten by test as eb5a0daa2192 + | | Obsfate: rewritten as eb5a0daa2192 | | | x 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e @@ -551,9 +570,9 @@ $ hg fatelogjson --hidden @ eb5a0daa2192 "" | - | x 0dec01379d3b [{"markers": [["\r\udcec\u00017\udc9d;\udce61\udc8cG\u000e\udcad1\udcb1\udcfez\udce7\udccbS\udcd5", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "13"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) | | - | x 471f378eab4c [{"markers": [["G\u001f7\udc8e\udcabL^%\udcf6\udcc7\u007fx['\udcc96\udcef\udcb2(t", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) |/ o ea207398892e "" @@ -640,8 +659,8 @@ | @ 471f378eab4c |/ Successors: [fdf9bde5129a], [019fadeab383] | semi-colon: [fdf9bde5129a]; [019fadeab383] - | Fate: rewritten by test as fdf9bde5129a - | rewritten by test as 019fadeab383 + | Fate: rewritten as fdf9bde5129a + | rewritten as 019fadeab383 | o ea207398892e @@ -651,8 +670,8 @@ | o fdf9bde5129a |/ | @ 471f378eab4c - |/ Obsfate: rewritten by test as fdf9bde5129a - | rewritten by test as 019fadeab383 + |/ Obsfate: rewritten as fdf9bde5129a + | rewritten as 019fadeab383 | o ea207398892e @@ -686,7 +705,7 @@ | semi-colon: 471f378eab4c | Successors: [019fadeab383] | semi-colon: [019fadeab383] - | Fate: rewritten by test as 019fadeab383 + | Fate: rewritten as 019fadeab383 | | @ fdf9bde5129a |/ Precursors: 471f378eab4c @@ -694,8 +713,8 @@ | x 471f378eab4c |/ Successors: [fdf9bde5129a], [65b757b745b9] | semi-colon: [fdf9bde5129a]; [65b757b745b9] - | Fate: rewritten by test as fdf9bde5129a - | rewritten by test as 65b757b745b9 + | Fate: rewritten as fdf9bde5129a + | rewritten as 65b757b745b9 | o ea207398892e @@ -703,13 +722,13 @@ o 019fadeab383 | | x 65b757b745b9 - |/ Obsfate: rewritten by test as 019fadeab383 + |/ Obsfate: rewritten as 019fadeab383 | | @ fdf9bde5129a |/ | x 471f378eab4c - |/ Obsfate: rewritten by test as fdf9bde5129a - | rewritten by test as 65b757b745b9 + |/ Obsfate: rewritten as fdf9bde5129a + | rewritten as 65b757b745b9 | o ea207398892e @@ -717,11 +736,11 @@ $ hg fatelogjson --hidden o 019fadeab383 "" | - | x 65b757b745b9 [{"markers": [["e\udcb7W\udcb7E\udcb95\t\u003c\udc87\udca2\udcbc\u0347u!\udccc\udccf\udcfc\udcbd", ["\u0001\udc9f\udcad\uacc3\udcf6i\udc9f\udca8:\u05fd\udcb4\udcd8.\udcd2\udcc0\udce5\udcab"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\u0001\udc9f\udcad\uacc3\udcf6i\udc9f\udca8:\u05fd\udcb4\udcd8.\udcd2\udcc0\udce5\udcab"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 65b757b745b9 [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], "users": ["test"], "verb": "rewritten"}] (glob) |/ | @ fdf9bde5129a "" |/ - | x 471f378eab4c [{"markers": [["G\\u001f7\\udc8e\\udcabL^%\\udcf6\\udcc7\\u007fx['\\udcc96\\udcef\\udcb2(t", ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z."], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z."], "users": ["test"], "verb": "rewritten"}, {"markers": [["G\\u001f7\\udc8e\\udcabL^%\\udcf6\\udcc7\\u007fx['\\udcc96\\udcef\\udcb2(t", ["e\\udcb7W\\udcb7E\\udcb95\\t\\u003c\\udc87\\udca2\\udcbc\\u0347u!\\udccc\\udccf\\udcfc\\udcbd"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["e\\udcb7W\\udcb7E\\udcb95\\t\\u003c\\udc87\\udca2\\udcbc\\u0347u!\\udccc\\udccf\\udcfc\\udcbd"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], "users": ["test"], "verb": "rewritten"}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"], "users": ["test"], "verb": "rewritten"}] (glob) |/ o ea207398892e "" @@ -807,7 +826,7 @@ | @ 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -815,7 +834,7 @@ o eb5a0daa2192 | | @ 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e @@ -830,12 +849,12 @@ | @ 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten by test as eb5a0daa2192 + | | Fate: rewritten as eb5a0daa2192 | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -843,10 +862,10 @@ o eb5a0daa2192 | | @ 0dec01379d3b - | | Obsfate: rewritten by test as eb5a0daa2192 + | | Obsfate: rewritten as eb5a0daa2192 | | | x 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e @@ -862,12 +881,12 @@ | @ b7ea6d14e664 | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten by test as eb5a0daa2192 + | | Fate: rewritten as eb5a0daa2192 | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -875,10 +894,10 @@ o eb5a0daa2192 | | @ b7ea6d14e664 - | | Obsfate: rewritten by test as eb5a0daa2192 + | | Obsfate: rewritten as eb5a0daa2192 | | | x 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e @@ -899,17 +918,17 @@ | | semi-colon: 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten by test as eb5a0daa2192 + | | Fate: rewritten as eb5a0daa2192 | | | | x 0dec01379d3b | |/ Successors: [b7ea6d14e664] | | semi-colon: [b7ea6d14e664] - | | Fate: rewritten by test as b7ea6d14e664 + | | Fate: rewritten as b7ea6d14e664 | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten by test as eb5a0daa2192 + | Fate: rewritten as eb5a0daa2192 | o ea207398892e @@ -917,24 +936,24 @@ @ eb5a0daa2192 | | x b7ea6d14e664 - | | Obsfate: rewritten by test as eb5a0daa2192 + | | Obsfate: rewritten as eb5a0daa2192 | | | | x 0dec01379d3b - | |/ Obsfate: rewritten by test as b7ea6d14e664 + | |/ Obsfate: rewritten as b7ea6d14e664 | | | x 471f378eab4c - |/ Obsfate: rewritten by test as eb5a0daa2192 + |/ Obsfate: rewritten as eb5a0daa2192 | o ea207398892e $ hg fatelogjson --hidden @ eb5a0daa2192 "" | - | x b7ea6d14e664 [{"markers": [["\udcb7\udceam\u0014\udce6d\udcbd\u0212\"!\udcf7\udc99&1\udcb5\r\udca3\udcfb\u0007", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "13"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob) + | x b7ea6d14e664 [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) | | - | | x 0dec01379d3b [{"markers": [["\r\udcec\u00017\udc9d;\udce61\udc8cG\u000e\udcad1\udcb1\udcfez\udce7\udccbS\udcd5", ["\udcb7\udceam\u0014\udce6d\udcbd\u0212\"!\udcf7\udc99&1\udcb5\r\udca3\udcfb\u0007"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcb7\udceam\u0014\udce6d\udcbd\u0212\"!\udcf7\udc99&1\udcb5\r\udca3\udcfb\u0007"], "users": ["test"], "verb": "rewritten"}] (glob) + | | x 0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], "users": ["test"], "verb": "rewritten"}] (glob) | |/ - | x 471f378eab4c [{"markers": [["G\u001f7\udc8e\udcabL^%\udcf6\udcc7\u007fx['\udcc96\udcef\udcb2(t", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) |/ o ea207398892e "" @@ -1032,7 +1051,7 @@ | @ 471f378eab4c |/ Successors: [7a230b46bf61] | semi-colon: [7a230b46bf61] - | Fate: rewritten by test as 7a230b46bf61 + | Fate: rewritten as 7a230b46bf61 | o ea207398892e @@ -1063,7 +1082,7 @@ | x 471f378eab4c |/ Successors: [7a230b46bf61] | semi-colon: [7a230b46bf61] - | Fate: rewritten by test as 7a230b46bf61 + | Fate: rewritten as 7a230b46bf61 | o ea207398892e @@ -1079,7 +1098,7 @@ $ hg fatelogjson --hidden @ 7a230b46bf61 "" | - | x 471f378eab4c [{"markers": [["G\\u001f7\\udc8e\\udcabL^%\\udcf6\\udcc7\\u007fx['\\udcc96\\udcef\\udcb2(t", ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z."], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null], ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z.", ["z#\\u000bF\\udcbfa\\udce5\\u000b00\\udc8cl\\udcfd{\\udcd1&\\udc9e\\udcf5G\\u0002"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["z#\\u000bF\\udcbfa\\udce5\\u000b00\\udc8cl\\udcfd{\\udcd1&\\udc9e\\udcf5G\\u0002"], "users": ["test"], "verb": "rewritten"}] (glob) + | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null], ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e", ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], "users": ["test"], "verb": "rewritten"}] (glob) |/ o ea207398892e "" @@ -1114,7 +1133,7 @@ $ hg fatelog -v @ 471f378eab4c - | Obsfate: pruned + | Obsfate: pruned by test (at *) (glob) | o ea207398892e