Mercurial > evolve
changeset 2461:3c9a74763c20
merge with stable
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 21 May 2017 14:27:23 +0200 |
parents | 1ea3065cc570 (diff) 64cc0b059073 (current diff) |
children | 08c552a5eb37 |
files | README tests/test-discovery-obshashrange.t |
diffstat | 9 files changed, 312 insertions(+), 46 deletions(-) [+] |
line wrap: on
line diff
--- a/README Sun May 21 14:20:24 2017 +0200 +++ b/README Sun May 21 14:27:23 2017 +0200 @@ -112,6 +112,11 @@ Changelog ========= +6.3.0 - in progress +------------------- + + - olog: add an 'obslog' alias + 6.2.1 - in progress -------------------
--- a/hgext3rd/evolve/debugcmd.py Sun May 21 14:20:24 2017 +0200 +++ b/hgext3rd/evolve/debugcmd.py Sun May 21 14:27:23 2017 +0200 @@ -10,7 +10,10 @@ # * We could have the same code in core as `hg debugobsolete --stat`, # * We probably want a way for the extension to hook in for extra data. -from mercurial import node +from mercurial import ( + obsolete, + node, +) from mercurial.i18n import _ @@ -41,7 +44,8 @@ store = repo.obsstore unfi = repo.unfiltered() nm = unfi.changelog.nodemap - ui.write(_('markers total: %9i\n') % len(store._all)) + nbmarkers = len(store._all) + ui.write(_('markers total: %9i\n') % nbmarkers) sucscount = [0, 0, 0, 0] known = 0 parentsdata = 0 @@ -51,6 +55,8 @@ clustersmap = {} # same data using parent information pclustersmap = {} + size_v0 = [] + size_v1 = [] for mark in store: if mark[0] in nm: known += 1 @@ -72,6 +78,8 @@ # same with parent data nodes.update(parents) _updateclustermap(nodes, mark, pclustersmap) + size_v0.append(len(obsolete._fm0encodeonemarker(mark))) + size_v1.append(len(obsolete._fm1encodeonemarker(mark))) # freezing the result for c in clustersmap.values(): @@ -95,6 +103,27 @@ for key in sorted(metakeys): ui.write((' %15s: %9i\n' % (key, metakeys[key]))) + size_v0.sort() + size_v1.sort() + if size_v0: + ui.write('marker size:\n') + # format v1 + ui.write(' format v1:\n') + ui.write((' smallest length: %9i\n' % size_v1[0])) + ui.write((' longer length: %9i\n' % size_v1[-1])) + median = size_v1[nbmarkers // 2] + ui.write((' median length: %9i\n' % median)) + mean = sum(size_v1) // nbmarkers + ui.write((' mean length: %9i\n' % mean)) + # format v0 + ui.write(' format v0:\n') + ui.write((' smallest length: %9i\n' % size_v0[0])) + ui.write((' longer length: %9i\n' % size_v0[-1])) + median = size_v0[nbmarkers // 2] + ui.write((' median length: %9i\n' % median)) + mean = sum(size_v0) // nbmarkers + ui.write((' mean length: %9i\n' % mean)) + allclusters = list(set(clustersmap.values())) allclusters.sort(key=lambda x: len(x[1])) ui.write(('disconnected clusters: %9i\n' % len(allclusters)))
--- a/hgext3rd/evolve/metadata.py Sun May 21 14:20:24 2017 +0200 +++ b/hgext3rd/evolve/metadata.py Sun May 21 14:27:23 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.2.1.dev' +__version__ = '6.3.0.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/'
--- a/hgext3rd/evolve/obshistory.py Sun May 21 14:20:24 2017 +0200 +++ b/hgext3rd/evolve/obshistory.py Sun May 21 14:27:23 2017 +0200 @@ -12,6 +12,7 @@ commands, error, graphmod, + obsolete, node as nodemod, scmutil, ) @@ -25,7 +26,7 @@ eh = exthelper.exthelper() @eh.command( - 'olog', + 'obslog|olog', [('G', 'graph', True, _("show the revision DAG")), ('r', 'rev', [], _('show the specified revision or revset'), _('REV')) ] + commands.formatteropts, @@ -337,6 +338,30 @@ fm.write('debugobshistory.verb', '%s', verb, label="evolve.verb") + + effectflag = metadata.get('ef1') + if effectflag is not None: + try: + effectflag = int(effectflag) + except ValueError: + effectflag = None + if effectflag: + effect = [] + + # XXX should be a dict + if effectflag & DESCCHANGED: + effect.append('description') + if effectflag & METACHANGED: + effect.append('meta') + if effectflag & PARENTCHANGED: + effect.append('parent') + if effectflag & DIFFCHANGED: + effect.append('content') + + if effect: + fmteffect = fm.formatlist(effect, 'debugobshistory.effect', sep=', ') + fm.write('debugobshistory.effect', '(%s)', fmteffect) + fm.plain(' by ') fm.write('debugobshistory.marker_user', '%s', metadata['user'], @@ -355,3 +380,98 @@ label="evolve.node") fm.plain("\n") + +# logic around storing and using effect flags +DESCCHANGED = 1 << 0 # action changed the description +METACHANGED = 1 << 1 # action change the meta (user, date, branch, etc...) +PARENTCHANGED = 1 << 2 # action change the parent +DIFFCHANGED = 1 << 3 # action change diff introduced by the changeset + +def geteffectflag(relation): + """compute the effect flag by comparing the source and destination""" + effects = 0 + + source = relation[0] + + for changectx in relation[1]: + # Check if description has changed + if changectx.description() != source.description(): + effects |= DESCCHANGED + + # Check if known meta has changed + if (changectx.user() != source.user() + or changectx.date() != source.date() + or changectx.branch() != source.branch()): + effects |= METACHANGED + + # Check if at least one of the parent has changes + if changectx.parents() != source.parents(): + effects |= PARENTCHANGED + + if not _cmpdiff(source, changectx): + effects |= DIFFCHANGED + + return effects + +def _getdiffline(iterdiff): + """return a cleaned up line""" + try: + line = iterdiff.next() + except StopIteration: + return None + return line + +def _cmpdiff(leftctx, rightctx): + """return True if both ctx introduce the "same diff" + + This is a first and basic implementation, with many shortcoming. + """ + leftdiff = leftctx.diff(git=1) + rightdiff = rightctx.diff(git=1) + left, right = (0, 0) + while None not in (left, right): + left = _getdiffline(leftdiff) + right = _getdiffline(rightdiff) + if left != right: + return False + return True + +@eh.wrapfunction(obsolete, 'createmarkers') +def createmarkerswithbits(orig, repo, relations, flag=0, date=None, metadata=None): + """compute 'effect-flag' and augment the created markers + + Wrap obsolete.createmarker in order to compute the effect of each + relationship and store them as flag in the metadata. + + While we experiment, we store flag in a metadata field. This field is + "versionned" to easilly allow moving to other meaning for flags. + + The comparison of description or other infos just before creating the obs + marker might induce overhead in some cases. However it is a good place to + start since it automatically makes all markers creation recording more + meaningful data. In the future, we can introduce way for commands to + provide precomputed effect to avoid the overhead. + """ + if not repo.ui.configbool('experimental', 'evolution.effect-flags', False): + return orig(repo, relations, flag, date, metadata) + if metadata is None: + metadata = {} + tr = repo.transaction('add-obsolescence-marker') + try: + for r in relations: + # Compute the effect flag for each obsmarker + effect = geteffectflag(r) + + # Copy the metadata in order to add them, we copy because the + # effect flag might be different per relation + m = metadata.copy() + # we store the effect even if "0". This disctinct markers created + # without the feature with markers recording a no-op. + m['ef1'] = "%d" % effect + + # And call obsolete.createmarkers for creating the obsmarker for real + orig(repo, [r], flag, date, m) + + tr.close() + finally: + tr.release()
--- a/tests/test-discovery-obshashrange.t Sun May 21 14:20:24 2017 +0200 +++ b/tests/test-discovery-obshashrange.t Sun May 21 14:27:23 2017 +0200 @@ -34,24 +34,10 @@ * @0000000000000000000000000000000000000000 (*)> serve --stdio (glob) * @0000000000000000000000000000000000000000 (*)> -R server serve --stdio exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) + * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obshashrange in *.???? seconds (8r, 0o) (glob) + * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (8r, 0o) (glob) * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obshashrange in *.???? seconds (8r, 0o) (glob) - * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (8r, 0o) (glob) * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> blackbox (glob) $ rm .hg/blackbox.log @@ -168,11 +154,11 @@ $ rm ../server/.hg/blackbox.log $ hg blackbox * @0000000000000000000000000000000000000000 (*)> pull --rev 4 (glob) - * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) * @0000000000000000000000000000000000000000 (*)> updated stablerange cache in *.???? seconds (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obshashrange in *.???? seconds (5r, 3o) (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (5r, 3o) (glob) + * @0000000000000000000000000000000000000000 (*)> updated base branch cache in *.???? seconds (glob) + * @0000000000000000000000000000000000000000 (*)> wrote base branch cache with 1 labels and 1 nodes (glob) * @0000000000000000000000000000000000000000 (*)> 5 incoming changes - new heads: bebd167eb94d (glob) * @0000000000000000000000000000000000000000 (*)> pull --rev 4 exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> blackbox (glob) @@ -250,12 +236,11 @@ received listkey for "phases": 58 bytes $ hg -R ../server blackbox * @0000000000000000000000000000000000000000 (*)> serve --stdio (glob) - * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (1r, 0o) (glob) + * @0000000000000000000000000000000000000000 (*)> updated stablerange cache in *.???? seconds (glob) + * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 1o) (glob) + * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (1r, 1o) (glob) * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 2 nodes (glob) - * @0000000000000000000000000000000000000000 (*)> updated stablerange cache in *.???? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 1o) (glob) - * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) * @0000000000000000000000000000000000000000 (*)> 1 incoming changes - new heads: 45f8b879de92 (glob) * @0000000000000000000000000000000000000000 (*)> -R server serve --stdio exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> blackbox (glob) @@ -312,10 +297,10 @@ * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> add foo (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> add foo exited 0 after *.?? seconds (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> commit -m foo (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated evo-ext-obscache in *.???? seconds (1r, 0o) (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated served branch cache in *.???? seconds (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> wrote served branch cache with 1 labels and 1 nodes (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 0o) (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (1r, 0o) (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated served branch cache in *.???? seconds (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> wrote served branch cache with 1 labels and 1 nodes (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> commit -m foo exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete ffffffffffffffffffffffffffffffffffffffff 45f8b879de922f6a6e620ba04205730335b6fc7e (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) @@ -344,7 +329,7 @@ * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete 22222222222222222bbbbbbbbbbbbb2222222222 2dc09a01254db841290af0538aa52f6f52c776e3 exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> push (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obsdiscovery, 2/6 mismatch - 1 obshashrange queries in *.???? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> push exited True after *.?? seconds (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> push exited 1 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> blackbox (glob) $ rm .hg/blackbox.log $ hg debugobsolete | sort @@ -423,13 +408,12 @@ * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> log -G exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull -r 6 (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obsdiscovery, 2/6 mismatch - 1 obshashrange queries in *.???? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (2r, 0o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated served branch cache in *.???? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> wrote served branch cache with 1 labels and 2 nodes (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated stablerange cache in *.???? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obshashcache reset - new markers affect cached ranges (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (2r, 3o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (0r, 3o) (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (2r, 3o) (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated served branch cache in *.???? seconds (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> wrote served branch cache with 1 labels and 2 nodes (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> 2 incoming changes - new heads: f69452c5b1af (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull -r 6 exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> blackbox (glob) @@ -569,12 +553,11 @@ * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obsdiscovery, 0/8 mismatch - 1 obshashrange queries in *.???? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (1r, 0o) (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated stablerange cache in *.???? seconds (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 1o) (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (1r, 1o) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated served branch cache in *.???? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> wrote served branch cache with 1 labels and 2 nodes (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated stablerange cache in *.???? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 1o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> 1 incoming changes - new heads: 4de32a90b66c (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> rollback (glob) @@ -619,11 +602,8 @@ * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obsdiscovery, 0/8 mismatch - 1 obshashrange queries in *.???? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-obscache cache reset (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (9r, 12o) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated stablerange cache in *.???? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 1o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> 1 incoming changes - new heads: 4de32a90b66c (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> blackbox (glob) @@ -745,11 +725,11 @@ * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> log -G exited 0 after *.?? seconds (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> pull (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> obsdiscovery, 0/8 mismatch - 1 obshashrange queries in *.???? seconds (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated evo-ext-obscache in *.???? seconds (1r, 0o) (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated stablerange cache in *.???? seconds (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 0o) (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated served branch cache in *.???? seconds (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> wrote served branch cache with 1 labels and 2 nodes (glob) + * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated evo-ext-obscache in *.???? seconds (1r, 0o) (glob) + * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated base branch cache in *.???? seconds (glob) + * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> wrote base branch cache with 1 labels and 2 nodes (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> 1 incoming changes - new heads: 45f8b879de92 (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> pull exited 0 after *.?? seconds (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> log -G (glob)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-evolve-effectflags.t Sun May 21 14:27:23 2017 +0200 @@ -0,0 +1,110 @@ +Test the 'effect-flags' feature + +Global setup +============ + + $ . $TESTDIR/testlib/common.sh + $ cat >> $HGRCPATH <<EOF + > [ui] + > interactive = true + > [phases] + > publish=False + > [extensions] + > evolve = + > rebase = + > [experimental] + > evolution.effect-flags = 1 + > EOF + + $ hg init $TESTTMP/effect-flags + $ cd $TESTTMP/effect-flags + $ mkcommit ROOT + +amend touching the description only +----------------------------------- + + $ mkcommit A0 + $ hg amend -m "A1" + +check result + + $ hg debugobsolete --rev . + 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (*) {'ef1': '1', 'user': 'test'} (glob) + $ hg obslog . + @ fdf9bde5129a (2) A1 + | + x 471f378eab4c (1) A0 + rewritten(description) by test (*) as fdf9bde5129a (glob) + + +amend touching the metadata only +-------------------------------- + + $ mkcommit B0 + $ hg amend -u "bob <bob@bob.com>" + +check result + + $ hg debugobsolete --rev . + ef4a313b1e0ade55718395d80e6b88c5ccd875eb 5485c92d34330dac9d7a63dc07e1e3373835b964 0 (*) {'ef1': '2', 'user': 'test'} (glob) + $ hg obslog . + @ 5485c92d3433 (4) B0 + | + x ef4a313b1e0a (3) B0 + rewritten(meta) by test (*) as 5485c92d3433 (glob) + + +rebase (parents change) +----------------------- + + $ mkcommit C0 + $ mkcommit D0 + $ hg rebase -r . -d 'desc(B0)' + rebasing 6:2ee0a31bd600 "D0" (tip) + +check result + + $ hg debugobsolete --rev . + 2ee0a31bd600ca999a5e6e69bfdfde3f9c78a6f9 131ac3eecd92fb2dfd2fc59bb5e0b8efbe9e9201 0 (*) {'ef1': '4', 'user': 'test'} (glob) + $ hg obslog . + @ 131ac3eecd92 (7) D0 + | + x 2ee0a31bd600 (6) D0 + rewritten(parent) by test (*) as 131ac3eecd92 (glob) + + +amend touching the diff +----------------------- + + $ mkcommit E0 + $ echo 42 >> E0 + $ hg amend + +check result + + $ hg debugobsolete --rev . + 5734caf1004261ffc2ed05763b82bf9d75ba3788 0 {f75604747b4fd2dfebe7f48c6e629aea15e3b237} (*) {'ef1': '0', 'user': 'test'} (glob) + f75604747b4fd2dfebe7f48c6e629aea15e3b237 bed7e49faeb8ae06649b547a755d50f5bb0be220 0 (*) {'ef1': '8', 'user': 'test'} (glob) + $ hg obslog . + @ bed7e49faeb8 (10) E0 + | + x f75604747b4f (8) E0 + rewritten(content) by test (*) as bed7e49faeb8 (glob) + + +amend with multiple effect (desc and meta) +------------------------------------------- + + $ mkcommit F0 + $ hg amend -m F1 -u "bob <bob@bob.com>" + +check result + + $ hg debugobsolete --rev . + 713ccc39944e10bd35b7f6eaed3eef0eab60e50b 7d0186621c5ba1b0f7c5c99668d43273cb44c2fe 0 (*) {'ef1': '3', 'user': 'test'} (glob) + $ hg obslog . + @ 7d0186621c5b (12) F1 + | + x 713ccc39944e (11) F0 + rewritten(description, meta) by test (*) as 7d0186621c5b (glob) +
--- a/tests/test-evolve-obshistory.t Sun May 21 14:20:24 2017 +0200 +++ b/tests/test-evolve-obshistory.t Sun May 21 14:27:23 2017 +0200 @@ -59,7 +59,7 @@ x 471f378eab4c (1) A0 rewritten by test (*20*) as 4ae3a4151de9 (glob) - $ hg olog 4ae3a4151de9 --no-graph -Tjson | python -m json.tool + $ hg obslog 4ae3a4151de9 --no-graph -Tjson | python -m json.tool [ { "debugobshistory.markers": [], @@ -86,7 +86,7 @@ "debugobshistory.shortdescription": "A0" } ] - $ hg olog --hidden 471f378eab4c + $ hg obslog --hidden 471f378eab4c x 471f378eab4c (1) A0 rewritten by test (*20*) as 4ae3a4151de9 (glob)
--- a/tests/test-evolve.t Sun May 21 14:20:24 2017 +0200 +++ b/tests/test-evolve.t Sun May 21 14:27:23 2017 +0200 @@ -793,6 +793,17 @@ more than 2 successors: 0 available keys: user: 10 + marker size: + format v1: + smallest length: 69 + longer length: 69 + median length: 69 + mean length: 69 + format v0: + smallest length: * (glob) + longer length: * (glob) + median length: * (glob) + mean length: * (glob) disconnected clusters: 1 any known node: 1 smallest length: 10
--- a/tests/test-prune.t Sun May 21 14:20:24 2017 +0200 +++ b/tests/test-prune.t Sun May 21 14:27:23 2017 +0200 @@ -354,6 +354,17 @@ more than 2 successors: 0 available keys: user: 7 + marker size: + format v1: + smallest length: 69 + longer length: 69 + median length: 69 + mean length: 69 + format v0: + smallest length: * (glob) + longer length: * (glob) + median length: * (glob) + mean length: * (glob) disconnected clusters: 7 any known node: 7 smallest length: 1