Mercurial > evolve
changeset 2853:cec3d2ea2eeb
merge with stable
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 23 Aug 2017 23:44:36 +0200 |
parents | a13acecbc850 (diff) 0d16c89aa185 (current diff) |
children | 66796d7b5415 |
files | |
diffstat | 32 files changed, 513 insertions(+), 383 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/evolve/__init__.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/__init__.py Wed Aug 23 23:44:36 2017 +0200 @@ -489,9 +489,9 @@ """ revset.getargs(x, 0, 0, 'troubled takes no arguments') troubled = set() - troubled.update(getrevs(repo, 'unstable')) - troubled.update(getrevs(repo, 'bumped')) - troubled.update(getrevs(repo, 'divergent')) + troubled.update(getrevs(repo, 'orphan')) + troubled.update(getrevs(repo, 'phasedivergent')) + troubled.update(getrevs(repo, 'contentdivergent')) troubled = revset.baseset(troubled) troubled.sort() # set is non-ordered, enforce order return subset & troubled @@ -504,7 +504,7 @@ """Precursor of a changeset""" cs = set() nm = repo.changelog.nodemap - markerbysubj = repo.obsstore.precursors + markerbysubj = repo.obsstore.predecessors node = repo.changelog.node for r in s: for p in markerbysubj.get(node(r), ()): @@ -519,7 +519,7 @@ node = repo.changelog.node toproceed = [node(r) for r in s] seen = set() - allsubjects = repo.obsstore.precursors + allsubjects = repo.obsstore.predecessors while toproceed: nc = toproceed.pop() for mark in allsubjects.get(nc, ()): @@ -670,7 +670,7 @@ if reason == 'pruned': solvemsg = _("use 'hg evolve' to update to its parent successor") elif reason == 'diverged': - debugcommand = "hg evolve --list --divergent" + debugcommand = "hg evolve --list --contentdivergent" basemsg = _("%s has diverged, use '%s' to resolve the issue") solvemsg = basemsg % (shortnode, debugcommand) elif reason == 'superseed': @@ -759,17 +759,17 @@ # part of the troubled stuff may be filtered (stash ?) # This needs a better implementation but will probably wait for core. filtered = repo.changelog.filteredrevs - priorunstables = len(set(getrevs(repo, 'unstable')) - filtered) - priorbumpeds = len(set(getrevs(repo, 'bumped')) - filtered) - priordivergents = len(set(getrevs(repo, 'divergent')) - filtered) + priorunstables = len(set(getrevs(repo, 'orphan')) - filtered) + priorbumpeds = len(set(getrevs(repo, 'phasedivergent')) - filtered) + priordivergents = len(set(getrevs(repo, 'contentdivergent')) - filtered) ret = orig(ui, repo, *args, **kwargs) filtered = repo.changelog.filteredrevs newunstables = \ - len(set(getrevs(repo, 'unstable')) - filtered) - priorunstables + len(set(getrevs(repo, 'orphan')) - filtered) - priorunstables newbumpeds = \ - len(set(getrevs(repo, 'bumped')) - filtered) - priorbumpeds + len(set(getrevs(repo, 'phasedivergent')) - filtered) - priorbumpeds newdivergents = \ - len(set(getrevs(repo, 'divergent')) - filtered) - priordivergents + len(set(getrevs(repo, 'contentdivergent')) - filtered) - priordivergents if newunstables > 0: ui.warn(_('%i new unstable changesets\n') % newunstables) if newbumpeds > 0: @@ -993,11 +993,11 @@ wlock = repo.wlock() lock = repo.lock() tr = repo.transaction("evolve") - if 'unstable' == category: + if 'orphan' == category: result = _solveunstable(ui, repo, ctx, dryrun, confirm, progresscb) - elif 'bumped' == category: + elif 'phasedivergent' == category: result = _solvebumped(ui, repo, ctx, dryrun, confirm, progresscb) - elif 'divergent' == category: + elif 'contentdivergent' == category: result = _solvedivergent(ui, repo, ctx, dryrun, confirm, progresscb) else: @@ -1010,37 +1010,44 @@ def _handlenotrouble(ui, repo, allopt, revopt, anyopt, targetcat): """Used by the evolve function to display an error message when no troubles can be resolved""" - troublecategories = ['bumped', 'divergent', 'unstable'] + troublecategories = ['phasedivergent', 'contentdivergent', 'orphan'] unselectedcategories = [c for c in troublecategories if c != targetcat] msg = None hint = None troubled = { - "unstable": repo.revs("unstable()"), - "divergent": repo.revs("divergent()"), - "bumped": repo.revs("bumped()"), + "orphan": repo.revs("orphan()"), + "contentdivergent": repo.revs("contentdivergent()"), + "phasedivergent": repo.revs("phasedivergent()"), "all": repo.revs("troubled()"), } hintmap = { - 'bumped': _("do you want to use --bumped"), - 'bumped+divergent': _("do you want to use --bumped or --divergent"), - 'bumped+unstable': _("do you want to use --bumped or --unstable"), - 'divergent': _("do you want to use --divergent"), - 'divergent+unstable': _("do you want to use --divergent" - " or --unstable"), - 'unstable': _("do you want to use --unstable"), - 'any+bumped': _("do you want to use --any (or --rev) and --bumped"), - 'any+bumped+divergent': _("do you want to use --any (or --rev) and" - " --bumped or --divergent"), - 'any+bumped+unstable': _("do you want to use --any (or --rev) and" - "--bumped or --unstable"), - 'any+divergent': _("do you want to use --any (or --rev) and" - " --divergent"), - 'any+divergent+unstable': _("do you want to use --any (or --rev)" - " and --divergent or --unstable"), - 'any+unstable': _("do you want to use --any (or --rev)" - "and --unstable"), + 'phasedivergent': _("do you want to use --phasedivergent"), + 'phasedivergent+contentdivergent': _("do you want to use " + "--phasedivergent or" + " --contentdivergent"), + 'phasedivergent+orphan': _("do you want to use --phasedivergent" + " or --orphan"), + 'contentdivergent': _("do you want to use --contentdivergent"), + 'contentdivergent+orphan': _("do you want to use --contentdivergent" + " or --orphan"), + 'orphan': _("do you want to use --orphan"), + 'any+phasedivergent': _("do you want to use --any (or --rev) and" + " --phasedivergent"), + 'any+phasedivergent+contentdivergent': _("do you want to use --any" + " (or --rev) and" + " --phasedivergent or" + " --contentdivergent"), + 'any+phasedivergent+orphan': _("do you want to use --any (or --rev)" + " and --phasedivergent or --orphan"), + 'any+contentdivergent': _("do you want to use --any (or --rev) and" + " --contentdivergent"), + 'any+contentdivergent+orphan': _("do you want to use --any (or --rev)" + " and --contentdivergent or " + "--orphan"), + 'any+orphan': _("do you want to use --any (or --rev)" + "and --orphan"), } if revopt: @@ -1067,7 +1074,7 @@ else: # evolve without any option = relative to the current wdir - if targetcat == 'unstable': + if targetcat == 'orphan': msg = _("nothing to evolve on current working copy parent") else: msg = _("current working copy parent is not %s") % targetcat @@ -1183,6 +1190,11 @@ discarded.update(othersrevs) return res +instabilities_map = { + 'contentdivergent': "content-divergent", + 'phasedivergent': "phase-divergent" +} + def _selectrevs(repo, allopt, revopt, anyopt, targetcat): """select troubles in repo matching according to given options""" revs = set() @@ -1194,23 +1206,23 @@ topic = getattr(repo, 'currenttopic', '') if topic: revs = repo.revs('topic(%s)', topic) & revs - elif targetcat == 'unstable': + elif targetcat == 'orphan': revs = _aspiringdescendant(repo, repo.revs('(.::) - obsolete()::')) revs = set(revs) - if targetcat == 'divergent': + if targetcat == 'contentdivergent': # Pick one divergent per group of divergents revs = _dedupedivergents(repo, revs) elif anyopt: revs = repo.revs('first(%s())' % (targetcat)) - elif targetcat == 'unstable': + elif targetcat == 'orphan': revs = set(_aspiringchildren(repo, repo.revs('(.::) - obsolete()::'))) if 1 < len(revs): msg = "multiple evolve candidates" hint = (_("select one of %s with --rev") % ', '.join([str(repo[r]) for r in sorted(revs)])) raise error.Abort(msg, hint=hint) - elif targetcat in repo['.'].troubles(): + elif instabilities_map.get(targetcat, targetcat) in repo['.'].instabilities(): revs = set([repo['.'].rev()]) return revs @@ -1287,10 +1299,10 @@ def listtroubles(ui, repo, troublecategories, **opts): """Print all the troubles for the repo (or given revset)""" - troublecategories = troublecategories or ['divergent', 'unstable', 'bumped'] - showunstable = 'unstable' in troublecategories - showbumped = 'bumped' in troublecategories - showdivergent = 'divergent' in troublecategories + troublecategories = troublecategories or ['contentdivergent', 'orphan', 'phasedivergent'] + showunstable = 'orphan' in troublecategories + showbumped = 'phasedivergent' in troublecategories + showdivergent = 'contentdivergent' in troublecategories revs = repo.revs('+'.join("%s()" % t for t in troublecategories)) if opts.get('rev'): @@ -1299,7 +1311,7 @@ fm = ui.formatter('evolvelist', opts) for rev in revs: ctx = repo[rev] - unpars = _preparelistctxs(ctx.parents(), lambda p: p.unstable()) + unpars = _preparelistctxs(ctx.parents(), lambda p: p.orphan()) obspars = _preparelistctxs(ctx.parents(), lambda p: p.obsolete()) imprecs = _preparelistctxs(repo.set("allprecursors(%n)", ctx.node()), lambda p: not p.mutable()) @@ -1317,7 +1329,7 @@ fm.data(node=ctx.hex(), rev=ctx.rev(), desc=desc, phase=ctx.phasestr()) for unpar in unpars if showunstable else []: - fm.plain(' unstable: %s (unstable parent)\n' % unpar[:hashlen]) + fm.plain(' orphan: %s (orphan parent)\n' % unpar[:hashlen]) for obspar in obspars if showunstable else []: fm.plain(' unstable: %s (obsolete parent)\n' % obspar[:hashlen]) for imprec in imprecs if showbumped else []: @@ -1369,8 +1381,11 @@ 'directory')), ('r', 'rev', [], _('solves troubles of these revisions')), ('', 'bumped', False, _('solves only bumped changesets')), - ('', 'divergent', False, _('solves only divergent changesets')), - ('', 'unstable', False, _('solves only unstable changesets (default)')), + ('', 'phasedivergent', False, _('solves only bumped changesets')), + ('', 'divergent', False, _('solves only phasedivergent changesets')), + ('', 'contentdivergent', False, _('solves only contentdivergent changesets')), + ('', 'unstable', False, _('solves only unstable changesets')), + ('', 'orphan', False, _('solves only orphan changesets (default)')), ('a', 'all', False, _('evolve all troubled changesets related to the ' 'current working directory and its descendants')), ('c', 'continue', False, _('continue an interrupted evolution')), @@ -1457,13 +1472,36 @@ dryrunopt = opts['dry_run'] confirmopt = opts['confirm'] revopt = opts['rev'] - troublecategories = ['bumped', 'divergent', 'unstable'] + + # Backward compatibility + if opts['unstable']: + msg = ("'evolve --unstable' is deprecated, " + "use 'evolve --orphan'") + repo.ui.deprecwarn(msg, '4.4') + + opts['orphan'] = opts['divergent'] + + if opts['divergent']: + msg = ("'evolve --divergent' is deprecated, " + "use 'evolve --contentdivergent'") + repo.ui.deprecwarn(msg, '4.4') + + opts['contentdivergent'] = opts['divergent'] + + if opts['bumped']: + msg = ("'evolve --bumped' is deprecated, " + "use 'evolve --phasedivergent'") + repo.ui.deprecwarn(msg, '4.4') + + opts['phasedivergent'] = opts['bumped'] + + troublecategories = ['phasedivergent', 'contentdivergent', 'orphan'] specifiedcategories = [t for t in troublecategories if opts[t]] if listopt: listtroubles(ui, repo, specifiedcategories, **opts) return - targetcat = 'unstable' + targetcat = 'orphan' if 1 < len(specifiedcategories): msg = _('cannot specify more than one trouble category to solve (yet)') raise error.Abort(msg) @@ -1543,7 +1581,7 @@ # For the progress bar to show count = len(revs) # Order the revisions - if targetcat == 'unstable': + if targetcat == 'orphan': revs = _orderrevs(repo, revs) for rev in revs: progresscb() @@ -1580,7 +1618,7 @@ one of its descendants. Empty list if none can be found.""" target = set(revs) result = [] - for r in repo.revs('unstable() - %ld', revs): + for r in repo.revs('orphan() - %ld', revs): dest = _possibledestination(repo, r) if target & dest: result.append(r) @@ -1592,7 +1630,7 @@ target = set(revs) result = set(target) paths = collections.defaultdict(set) - for r in repo.revs('unstable() - %ld', revs): + for r in repo.revs('orphan() - %ld', revs): for d in _possibledestination(repo, r): paths[d].add(r) @@ -2131,7 +2169,7 @@ else: cmdutil.bailifchanged(repo) result = _solveone(ui, repo, repo[aspchildren[0]], dryrunopt, - False, lambda: None, category='unstable') + False, lambda: None, category='orphan') if not result: ui.status(_('working directory now at %s\n') % ui.label(str(repo['.']), 'evolve.node'))
--- a/hgext3rd/evolve/compat.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/compat.py Wed Aug 23 23:44:36 2017 +0200 @@ -7,8 +7,10 @@ """ from mercurial import ( + context, hg, obsolete, + revset, util, ) @@ -45,7 +47,7 @@ pendingnodes = set(nodes) seenmarkers = set() seennodes = set(pendingnodes) - precursorsmarkers = self.precursors + precursorsmarkers = self.predecessors succsmarkers = self.successors children = self.children while pendingnodes: @@ -71,10 +73,13 @@ return func(*args, **kwargs) # allprecursors set move from mercurial.obsolete to mercurial.obsutil in 4.3 +# allprecursors was renamed into allpredecessors in 4.4 def allprecursors(*args, **kwargs): - func = getattr(obsutil, 'allprecursors', None) + func = getattr(obsutil, 'allpredecessors', None) if func is None: - func = obsolete.allprecursors + func = getattr(obsutil, 'allprecursors', None) + if func is None: + func = obsolete.allprecursors return func(*args, **kwargs) # compatibility layer for mercurial < 4.3 @@ -90,3 +95,69 @@ else: bookmarks[name] = node bookmarks.recordchange(tr) + +# Evolution renaming compat + +if not util.safehasattr(context.basectx, 'orphan'): + context.basectx.orphan = context.basectx.unstable + +if not util.safehasattr(context.basectx, 'contentdivergent'): + context.basectx.contentdivergent = context.basectx.divergent + +if not util.safehasattr(context.basectx, 'phasedivergent'): + context.basectx.phasedivergent = context.basectx.bumped + +if not util.safehasattr(context.basectx, 'isunstable'): + context.basectx.isunstable = context.basectx.troubled + +if not util.safehasattr(revset, 'orphan'): + @eh.revset('orphan') + def oprhanrevset(*args, **kwargs): + return revset.unstable(*args, **kwargs) + +if not util.safehasattr(revset, 'contentdivergent'): + @eh.revset('contentdivergent') + def contentdivergentrevset(*args, **kwargs): + return revset.divergent(*args, **kwargs) + +if not util.safehasattr(revset, 'phasedivergent'): + @eh.revset('phasedivergent') + def phasedivergentrevset(*args, **kwargs): + return revset.bumped(*args, **kwargs) + +if not util.safehasattr(context.basectx, 'instabilities'): + def instabilities(self): + """return the list of instabilities affecting this changeset. + + Instabilities are returned as strings. possible values are: + - orphan, + - phase-divergent, + - content-divergent. + """ + instabilities = [] + if self.orphan(): + instabilities.append('orphan') + if self.phasedivergent(): + instabilities.append('phase-divergent') + if self.contentdivergent(): + instabilities.append('content-divergent') + return instabilities + + context.basectx.instabilities = instabilities + +# XXX: Better detection of property cache +if 'predecessors' not in dir(obsolete.obsstore): + @property + def predecessors(self): + return self.precursors + + obsolete.obsstore.predecessors = predecessors + +if not util.safehasattr(obsolete, '_computeorphanset'): + obsolete._computeorphanset = obsolete.cachefor('orphan')(obsolete._computeunstableset) + +if not util.safehasattr(obsolete, '_computecontentdivergentset'): + obsolete._computecontentdivergentset = obsolete.cachefor('contentdivergent')(obsolete._computedivergentset) + +if not util.safehasattr(obsolete, '_computephasedivergentset'): + obsolete._computephasedivergentset = obsolete.cachefor('phasedivergent')(obsolete._computebumpedset)
--- a/hgext3rd/evolve/hack/drophack.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/hack/drophack.py Wed Aug 23 23:44:36 2017 +0200 @@ -50,7 +50,7 @@ seennodes = set(nodes) seenmarkers = set() pendingnodes = set(nodes) - precursorsmarkers = obsstore.precursors + precursorsmarkers = obsstore.predecessors while pendingnodes: current = pendingnodes.pop() new = set()
--- a/hgext3rd/evolve/metadata.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/metadata.py Wed Aug 23 23:44:36 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.6.1.dev' +__version__ = '6.7.0.dev' testedwith = '3.8.4 3.9.2 4.0.2 4.1.3 4.2.2' minimumhgversion = '3.8' buglink = 'https://bz.mercurial-scm.org/'
--- a/hgext3rd/evolve/obscache.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/obscache.py Wed Aug 23 23:44:36 2017 +0200 @@ -111,21 +111,26 @@ return obsstore -# XXX copied as is from Mercurial 4.2 and added the "offset" parameters -@util.nogc -def _readmarkers(data, offset=None): - """Read and enumerate markers from raw data""" - off = 0 - diskversion = struct.unpack('>B', data[off:off + 1])[0] - if offset is None: - off += 1 - else: - assert 1 <= offset - off = offset - if diskversion not in obsolete.formats: - raise error.Abort(_('parsing obsolete marker: unknown version %r') - % diskversion) - return diskversion, obsolete.formats[diskversion][0](data, off) +if obsolete._readmarkers.__code__.co_argcount > 1: + # hg-4.3+ has the "offset" parameter, and _fm?readmarkers also have an + # extra "stop" parameter + _readmarkers = obsolete._readmarkers +else: + # XXX copied as is from Mercurial 4.2 and added the "offset" parameters + @util.nogc + def _readmarkers(data, offset=None): + """Read and enumerate markers from raw data""" + off = 0 + diskversion = struct.unpack('>B', data[off:off + 1])[0] + if offset is None: + off += 1 + else: + assert 1 <= offset + off = offset + if diskversion not in obsolete.formats: + raise error.Abort(_('parsing obsolete marker: unknown version %r') + % diskversion) + return diskversion, obsolete.formats[diskversion][0](data, off) def markersfrom(obsstore, byteoffset, firstmarker): if not firstmarker:
--- a/hgext3rd/evolve/obshistory.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/obshistory.py Wed Aug 23 23:44:36 2017 +0200 @@ -301,7 +301,7 @@ - The dictionnary of each node successors, values are a set - The dictionnary of each node precursors, values are a list """ - precursors = repo.obsstore.precursors + precursors = repo.obsstore.predecessors successors = repo.obsstore.successors nodec = repo.changelog.node @@ -358,7 +358,7 @@ def _debugobshistoryrevs(fm, repo, revs, opts): """ Display the obsolescence history for revset """ - precursors = repo.obsstore.precursors + precursors = repo.obsstore.predecessors successors = repo.obsstore.successors nodec = repo.changelog.node unfi = repo.unfiltered() @@ -460,6 +460,14 @@ fmteffect = fm.formatlist(effect, 'debugobshistory.effect', sep=', ') fm.write('debugobshistory.effect', '(%s)', fmteffect) + if len(succnodes) > 0: + fm.plain(' as ') + + shortsnodes = (nodemod.short(succnode) for succnode in sorted(succnodes)) + nodes = fm.formatlist(shortsnodes, 'debugobshistory.succnodes', sep=', ') + fm.write('debugobshistory.succnodes', '%s', nodes, + label="evolve.node") + fm.plain(' by ') fm.write('debugobshistory.marker_user', '%s', metadata['user'], @@ -469,14 +477,6 @@ fm.write('debugobshistory.marker_date', '(%s)', fm.formatdate(date), label="evolve.date") - if len(succnodes) > 0: - fm.plain(' as ') - - shortsnodes = (nodemod.short(succnode) for succnode in sorted(succnodes)) - nodes = fm.formatlist(shortsnodes, 'debugobshistory.succnodes', sep=', ') - fm.write('debugobshistory.succnodes', '%s', nodes, - label="evolve.node") - # Patch display if opts.get('patch'): _patchavailable = patchavailable(node, repo, marker)
--- a/hgext3rd/evolve/templatekw.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/evolve/templatekw.py Wed Aug 23 23:44:36 2017 +0200 @@ -41,17 +41,17 @@ ctx = args['ctx'] try: # specify plural= explicitly to trigger TypeError on hg < 4.2 - return templatekw.showlist('trouble', ctx.troubles(), args, + return templatekw.showlist('trouble', ctx.instabilities(), args, plural='troubles') except TypeError: - return templatekw.showlist('trouble', ctx.troubles(), plural='troubles', + return templatekw.showlist('trouble', ctx.instabilities(), plural='troubles', **args) def closestprecursors(repo, nodeid): """ Yield the list of next precursors pointing on visible changectx nodes """ - precursors = repo.obsstore.precursors + precursors = repo.obsstore.predecessors stack = [nodeid] while stack: @@ -138,8 +138,8 @@ # Assemble them return { 'obsfate_quiet': verbtempl + succtempl, - 'obsfate': verbtempl + optionalusertempl + succtempl, - 'obsfate_verbose': verbtempl + usertempl + succtempl + datetempl, + 'obsfate': verbtempl + succtempl + optionalusertempl, + 'obsfate_verbose': verbtempl + succtempl + usertempl + datetempl, } def obsfatedata(repo, ctx):
--- a/hgext3rd/topic/__init__.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/topic/__init__.py Wed Aug 23 23:44:36 2017 +0200 @@ -118,7 +118,7 @@ 'topic.active': 'green', } -___version___ = '0.2.1.dev' +__version__ = '0.3.0.dev' testedwith = '4.0.2 4.1.3 4.2.1' minimumhgversion = '4.0' buglink = 'https://bz.mercurial-scm.org/' @@ -356,7 +356,18 @@ raise error.Abort('changing topic requires a topic name or --clear') if any(not c.mutable() for c in repo.set('%r and public()', rev)): raise error.Abort("can't change topic of a public change") - return _changetopics(ui, repo, rev, topic) + wl = l = txn = None + try: + wl = repo.wlock() + l = repo.lock() + txn = repo.transaction('rewrite-topics') + rewrote = _changetopics(ui, repo, rev, topic) + txn.close() + finally: + lock.release(txn, l, wl) + repo.invalidate() + ui.status('changed topic on %d changes\n' % rewrote) + return if clear: return _changecurrenttopic(repo, None) @@ -397,72 +408,66 @@ repo.vfs.unlink('topic') def _changetopics(ui, repo, revset, newtopic): + """ Changes topic to newtopic of all the revisions in the revset and return + the count of revisions whose topic has been changed. + """ rewrote = 0 - wl = l = txn = None - try: - wl = repo.wlock() - l = repo.lock() - txn = repo.transaction('rewrite-topics') - p1 = None - p2 = None - successors = {} - for c in repo.set('%r', revset): - def filectxfn(repo, ctx, path): - try: - return c[path] - except error.ManifestLookupError: - return None - fixedextra = dict(c.extra()) - ui.debug('old node id is %s\n' % node.hex(c.node())) - ui.debug('origextra: %r\n' % fixedextra) - oldtopic = fixedextra.get(constants.extrakey, None) - if oldtopic == newtopic: - continue - if newtopic is None: - del fixedextra[constants.extrakey] - else: - fixedextra[constants.extrakey] = newtopic - fixedextra[constants.changekey] = c.hex() - if 'amend_source' in fixedextra: - # TODO: right now the commitctx wrapper in - # topicrepo overwrites the topic in extra if - # amend_source is set to support 'hg commit - # --amend'. Support for amend should be adjusted - # to not be so invasive. - del fixedextra['amend_source'] - ui.debug('changing topic of %s from %s to %s\n' % ( - c, oldtopic, newtopic)) - ui.debug('fixedextra: %r\n' % fixedextra) - # While changing topic of set of linear commits, make sure that - # we base our commits on new parent rather than old parent which - # was obsoleted while changing the topic - p1 = c.p1().node() - p2 = c.p2().node() - if p1 in successors: - p1 = successors[p1] - if p2 in successors: - p2 = successors[p2] - mc = context.memctx( - repo, (p1, p2), c.description(), - c.files(), filectxfn, - user=c.user(), date=c.date(), extra=fixedextra) - newnode = repo.commitctx(mc) - successors[c.node()] = newnode - ui.debug('new node id is %s\n' % node.hex(newnode)) - obsolete.createmarkers(repo, [(c, (repo[newnode],))]) - rewrote += 1 - # move the working copy too - wctx = repo[None] - # in-progress merge is a bit too complex for now. - if len(wctx.parents()) == 1: - newid = successors.get(wctx.p1().node()) - if newid is not None: - hg.update(repo, newid, quietempty=True) - txn.close() - finally: - lock.release(txn, l, wl) - repo.invalidate() - ui.status('changed topic on %d changes\n' % rewrote) + p1 = None + p2 = None + successors = {} + for c in repo.set('%r', revset): + def filectxfn(repo, ctx, path): + try: + return c[path] + except error.ManifestLookupError: + return None + fixedextra = dict(c.extra()) + ui.debug('old node id is %s\n' % node.hex(c.node())) + ui.debug('origextra: %r\n' % fixedextra) + oldtopic = fixedextra.get(constants.extrakey, None) + if oldtopic == newtopic: + continue + if newtopic is None: + del fixedextra[constants.extrakey] + else: + fixedextra[constants.extrakey] = newtopic + fixedextra[constants.changekey] = c.hex() + if 'amend_source' in fixedextra: + # TODO: right now the commitctx wrapper in + # topicrepo overwrites the topic in extra if + # amend_source is set to support 'hg commit + # --amend'. Support for amend should be adjusted + # to not be so invasive. + del fixedextra['amend_source'] + ui.debug('changing topic of %s from %s to %s\n' % ( + c, oldtopic, newtopic)) + ui.debug('fixedextra: %r\n' % fixedextra) + # While changing topic of set of linear commits, make sure that + # we base our commits on new parent rather than old parent which + # was obsoleted while changing the topic + p1 = c.p1().node() + p2 = c.p2().node() + if p1 in successors: + p1 = successors[p1] + if p2 in successors: + p2 = successors[p2] + mc = context.memctx( + repo, (p1, p2), c.description(), + c.files(), filectxfn, + user=c.user(), date=c.date(), extra=fixedextra) + newnode = repo.commitctx(mc) + successors[c.node()] = newnode + ui.debug('new node id is %s\n' % node.hex(newnode)) + obsolete.createmarkers(repo, [(c, (repo[newnode],))]) + rewrote += 1 + # move the working copy too + wctx = repo[None] + # in-progress merge is a bit too complex for now. + if len(wctx.parents()) == 1: + newid = successors.get(wctx.p1().node()) + if newid is not None: + hg.update(repo, newid, quietempty=True) + return rewrote def _listtopics(ui, repo, opts): fm = ui.formatter('topics', opts)
--- a/hgext3rd/topic/stack.py Mon Aug 21 14:21:49 2017 +0200 +++ b/hgext3rd/topic/stack.py Wed Aug 23 23:44:36 2017 +0200 @@ -5,13 +5,23 @@ from mercurial.i18n import _ from mercurial import ( destutil, + context, error, node, + util, ) from .evolvebits import builddependencies, _orderrevs, _singlesuccessor short = node.short +# TODO: compat + +if not util.safehasattr(context.basectx, 'orphan'): + context.basectx.orphan = context.basectx.unstable + +if not util.safehasattr(context.basectx, 'isunstable'): + context.basectx.isunstable = context.basectx.troubled + def getstack(repo, branch=None, topic=None): # XXX need sorting if topic is not None and branch is not None: @@ -122,7 +132,7 @@ # "base" is kind of a "ghost" entry # skip other label for them (no current, no unstable) states = ['base'] - elif ctx.unstable(): + elif ctx.orphan(): # current revision can be unstable also, so in that case show both # the states and the symbol '@' (issue5553) if iscurrentrevision: @@ -171,7 +181,7 @@ data = {} revs = getstack(repo, branch, topic)[1:] data['changesetcount'] = len(revs) - data['troubledcount'] = len([r for r in revs if repo[r].troubled()]) + data['troubledcount'] = len([r for r in revs if repo[r].isunstable()]) deps, rdeps = builddependencies(repo, revs) data['headcount'] = len([r for r in revs if not rdeps[r]]) data['behindcount'] = 0
--- a/tests/test-divergent.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-divergent.t Wed Aug 23 23:44:36 2017 +0200 @@ -47,13 +47,13 @@ 1 changesets pruned 2 new divergent changesets $ hg log -G - @ 3:e708fd28d5cf@default(draft) add bdivergent2 [divergent] + @ 3:e708fd28d5cf@default(draft) add bdivergent2 [content-divergent] | - | o 2:c2f698071cba@default(draft) add bdivergent1 [divergent] + | o 2:c2f698071cba@default(draft) add bdivergent1 [content-divergent] |/ o 0:135f39f4bd78@default(draft) add _a [] - $ hg evolve --all --any --divergent + $ hg evolve --all --any --contentdivergent merge:[2] add bdivergent1 with: [3] add bdivergent2 base: [1] add _b @@ -90,15 +90,15 @@ 1 changesets pruned 2 new divergent changesets $ hg log -G - @ 8:0a768ef678d9@default(draft) cdivergent2 [divergent] + @ 8:0a768ef678d9@default(draft) cdivergent2 [content-divergent] | - | o 7:26c7705fee96@default(draft) add cdivergent1 [divergent] + | o 7:26c7705fee96@default(draft) add cdivergent1 [content-divergent] |/ | o 5:c26f1d3baed2@default(draft) add bdivergent1 [] |/ o 0:135f39f4bd78@default(draft) add _a [] - $ hg evolve --all --any --divergent + $ hg evolve --all --any --contentdivergent merge:[7] add cdivergent1 with: [8] cdivergent2 base: [6] add _c @@ -126,9 +126,9 @@ 1 changesets pruned 2 new divergent changesets $ hg log -G - @ 3:e708fd28d5cf@default(draft) add bdivergent2 [divergent] + @ 3:e708fd28d5cf@default(draft) add bdivergent2 [content-divergent] | - | o 2:c2f698071cba@default(draft) add bdivergent1 [divergent] + | o 2:c2f698071cba@default(draft) add bdivergent1 [content-divergent] |/ o 0:135f39f4bd78@default(draft) add _a [] @@ -145,9 +145,9 @@ > EOF $ hg evolve --all nothing to evolve on current working copy parent - (do you want to use --divergent) + (do you want to use --contentdivergent) [2] - $ hg evolve --divergent + $ hg evolve --contentdivergent merge:[3] add bdivergent2 with: [2] add bdivergent1 base: [1] add _b
--- a/tests/test-evolve-bumped.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-bumped.t Wed Aug 23 23:44:36 2017 +0200 @@ -69,7 +69,7 @@ no changes found 1 new bumped changesets - $ hg evolve -a -A --bumped + $ hg evolve -a -A --phasedivergent recreate:[2] tweak a atop:[1] modify a computing new diff @@ -121,5 +121,5 @@ | o 0:d3873e73d99e@default(public) init - $ hg evolve --all --bumped + $ hg evolve --all --phasedivergent skipping b28e84916d8c : we do not handle merge yet
--- a/tests/test-evolve-cycles.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-cycles.t Wed Aug 23 23:44:36 2017 +0200 @@ -89,48 +89,48 @@ $ hg obslog "desc(A)" --hidden @ 2a34000d3544 (1) A - | rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | $ hg obslog "desc(B)" --hidden @ 2a34000d3544 (1) A - | rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | $ hg obslog "desc(C)" --hidden @ 2a34000d3544 (1) A - | rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | Check that all option don't crash on a cycle either $ hg obslog "desc(C)" --hidden --all @ 2a34000d3544 (1) A - | rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob) + | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | x a8df460dbbfe (3) C - | rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob) + | rewritten(description, parent, content) as 2a34000d3544 by test (*) (glob) | x c473644ee0e9 (2) B - | rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob) + | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | Test with multiple cyles @@ -252,42 +252,42 @@ $ hg obslog "desc(D)" --hidden x 0da815c333f6 (5) E - | rewritten(description, parent, content) by test (*) as d9f908fde1a1 (glob) + | rewritten(description, parent, content) as d9f908fde1a1 by test (*) (glob) | @ 868d2e0eb19c (4) D - |\ rewritten(description, parent, content) by test (*) as 0da815c333f6 (glob) + |\ rewritten(description, parent, content) as 0da815c333f6 by test (*) (glob) | | | x d9f908fde1a1 (6) F - | | rewritten(description, parent, content) by test (*) as 868d2e0eb19c (glob) + | | rewritten(description, parent, content) as 868d2e0eb19c by test (*) (glob) | | +---x 2a34000d3544 (1) A - | | rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob) + | | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | | x | a8df460dbbfe (3) C - | | rewritten(description, parent, content) by test (*) as 2a34000d3544, 868d2e0eb19c (glob) + | | rewritten(description, parent, content) as 2a34000d3544, 868d2e0eb19c by test (*) (glob) | | x | c473644ee0e9 (2) B - | | rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob) + | | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | | Check that all option don't crash either on a cycle $ hg obslog --all --hidden "desc(F)" x 0da815c333f6 (5) E - | rewritten(description, parent, content) by test (*) as d9f908fde1a1 (glob) + | rewritten(description, parent, content) as d9f908fde1a1 by test (*) (glob) | @ 868d2e0eb19c (4) D - |\ rewritten(description, parent, content) by test (*) as 0da815c333f6 (glob) + |\ rewritten(description, parent, content) as 0da815c333f6 by test (*) (glob) | | | x d9f908fde1a1 (6) F - | | rewritten(description, parent, content) by test (*) as 868d2e0eb19c (glob) + | | rewritten(description, parent, content) as 868d2e0eb19c by test (*) (glob) | | +---x 2a34000d3544 (1) A - | | rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob) + | | rewritten(description, parent, content) as c473644ee0e9 by test (*) (glob) | | x | a8df460dbbfe (3) C - | | rewritten(description, parent, content) by test (*) as 2a34000d3544, 868d2e0eb19c (glob) + | | rewritten(description, parent, content) as 2a34000d3544, 868d2e0eb19c by test (*) (glob) | | x | c473644ee0e9 (2) B - | | rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob) + | | rewritten(description, parent, content) as a8df460dbbfe by test (*) (glob) | | Check the json output is valid in this case
--- a/tests/test-evolve-effectflags.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-effectflags.t Wed Aug 23 23:44:36 2017 +0200 @@ -34,7 +34,7 @@ @ fdf9bde5129a (2) A1 | x 471f378eab4c (1) A0 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) amend touching the user only @@ -51,7 +51,7 @@ @ 5485c92d3433 (4) B0 | x ef4a313b1e0a (3) B0 - rewritten(user) by test (*) as 5485c92d3433 (glob) + rewritten(user) as 5485c92d3433 by test (*) (glob) amend touching the date only @@ -68,7 +68,7 @@ @ 4dd84345082e (6) B1 | x 2ef0680ff450 (5) B1 - rewritten(date) by test (*) as 4dd84345082e (glob) + rewritten(date) as 4dd84345082e by test (*) (glob) amend touching the branch only @@ -89,7 +89,7 @@ @ 14a01456e057 (9) B2 | x bd3db8264cee (7) B2 - rewritten(branch) by test (*) as 14a01456e057 (glob) + rewritten(branch) as 14a01456e057 by test (*) (glob) $ hg up default @@ -111,7 +111,7 @@ @ da86aa2f19a3 (12) D0 | x c85eff83a034 (11) D0 - rewritten(parent) by test (*) as da86aa2f19a3 (glob) + rewritten(parent) as da86aa2f19a3 by test (*) (glob) amend touching the diff @@ -130,7 +130,7 @@ @ 75781fdbdbf5 (15) E0 | x ebfe0333e0d9 (13) E0 - rewritten(content) by test (*) as 75781fdbdbf5 (glob) + rewritten(content) as 75781fdbdbf5 by test (*) (glob) amend with multiple effect (desc and meta) @@ -150,7 +150,7 @@ @ a94e0fd5f1c8 (18) F1 | x fad47e5bd78e (16) F0 - rewritten(description, user, date, branch) by test (*) as a94e0fd5f1c8 (glob) + rewritten(description, user, date, branch) as a94e0fd5f1c8 by test (*) (glob) rebase not touching the diff ---------------------------- @@ -197,7 +197,7 @@ o e509e2eb3df5 (22) H1 | x b57fed8d8322 (20) H1 - rewritten(parent) by test (*) as e509e2eb3df5 (glob) + rewritten(parent) as e509e2eb3df5 by test (*) (glob) amend closing the branch should be detected as meta change ---------------------------------------------------------- @@ -214,5 +214,5 @@ @ 12c6238b5e37 (26) I0 | x 2f599e54c1c6 (24) I0 - rewritten(meta) by test (*) as 12c6238b5e37 (glob) + rewritten(meta) as 12c6238b5e37 by test (*) (glob)
--- a/tests/test-evolve-list.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-list.t Wed Aug 23 23:44:36 2017 +0200 @@ -23,7 +23,7 @@ unstable: cb9a9f314b8b (obsolete parent) 177f92b77385: c - unstable: d2ae7f538514 (unstable parent) + orphan: d2ae7f538514 (orphan parent) $ cd ..
--- a/tests/test-evolve-obshistory-complex.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-obshistory-complex.t Wed Aug 23 23:44:36 2017 +0200 @@ -80,14 +80,14 @@ | parent: 4:868d2e0eb19c | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | | o changeset: 8:d15d0ffc75f6 | | parent: 2:c473644ee0e9 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | | o changeset: 7:b868bc49b0a4 @@ -236,27 +236,27 @@ | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | o changeset: 14:ec31316faa9d | parent: 4:868d2e0eb19c | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | | o changeset: 13:d0f33db50670 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | o changeset: 12:7b3290f6e0a0 | | parent: 2:c473644ee0e9 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | | o changeset: 11:e036916b63ea @@ -312,21 +312,21 @@ | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | o changeset: 14:ec31316faa9d | parent: 4:868d2e0eb19c | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: fold2 | | o changeset: 12:7b3290f6e0a0 | | parent: 2:c473644ee0e9 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fold1 | | | | o changeset: 10:19e14c8397fc @@ -374,25 +374,25 @@ o 7b3290f6e0a0 (12) fold1 |\ x | d15d0ffc75f6 (8) fold1 - |\ \ rewritten(parent, content) by test (*) as 7b3290f6e0a0, d0f33db50670 (glob) + |\ \ rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (*) (glob) | | | | | x e036916b63ea (11) fold0 - | | | rewritten(description, parent, content) by test (*) as 7b3290f6e0a0 (glob) + | | | rewritten(description, parent, content) as 7b3290f6e0a0 by test (*) (glob) | | | x | | 868d2e0eb19c (4) D - / / rewritten(description, parent, content) by test (*) as d15d0ffc75f6 (glob) + / / rewritten(description, parent, content) as d15d0ffc75f6 by test (*) (glob) | | x | a8df460dbbfe (3) C - / rewritten(description, content) by test (*) as d15d0ffc75f6 (glob) + / rewritten(description, content) as d15d0ffc75f6 by test (*) (glob) | x b868bc49b0a4 (7) fold0 - |\ rewritten(parent, content) by test (*) as 19e14c8397fc, e036916b63ea (glob) + |\ rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (*) (glob) | | x | 2a34000d3544 (1) A - / rewritten(description, content) by test (*) as b868bc49b0a4 (glob) + / rewritten(description, content) as b868bc49b0a4 by test (*) (glob) | x c473644ee0e9 (2) B - rewritten(description, parent, content) by test (*) as b868bc49b0a4 (glob) + rewritten(description, parent, content) as b868bc49b0a4 by test (*) (glob) While with all option, we should see 15 changesets @@ -406,35 +406,35 @@ | | | | o ec31316faa9d (14) fold2 | | | |/| | | | x | 100cc25b765f (9) fold2 - | | | |\ \ rewritten(parent, content) by test (*) as d4a000f63ee9, ec31316faa9d (glob) + | | | |\ \ rewritten(parent, content) as d4a000f63ee9, ec31316faa9d by test (*) (glob) | | | | | | | +-------x d0f33db50670 (13) fold1 - | | | | | rewritten(description, parent, content) by test (*) as ec31316faa9d (glob) + | | | | | rewritten(description, parent, content) as ec31316faa9d by test (*) (glob) | | | | | +---x | | e036916b63ea (11) fold0 - | | / / rewritten(description, parent, content) by test (*) as 7b3290f6e0a0 (glob) + | | / / rewritten(description, parent, content) as 7b3290f6e0a0 by test (*) (glob) | | | | | | x | 0da815c333f6 (5) E - | | / rewritten(description, content) by test (*) as 100cc25b765f (glob) + | | / rewritten(description, content) as 100cc25b765f by test (*) (glob) | | | x | | b868bc49b0a4 (7) fold0 - |\ \ \ rewritten(parent, content) by test (*) as 19e14c8397fc, e036916b63ea (glob) + |\ \ \ rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (*) (glob) | | | | | | x | d15d0ffc75f6 (8) fold1 - | | |\ \ rewritten(parent, content) by test (*) as 7b3290f6e0a0, d0f33db50670 (glob) + | | |\ \ rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (*) (glob) | | | | | | | | | x d9f908fde1a1 (6) F - | | | | rewritten(description, parent, content) by test (*) as 100cc25b765f (glob) + | | | | rewritten(description, parent, content) as 100cc25b765f by test (*) (glob) | | | | x | | | 2a34000d3544 (1) A - / / / rewritten(description, content) by test (*) as b868bc49b0a4 (glob) + / / / rewritten(description, content) as b868bc49b0a4 by test (*) (glob) | | | | x | 868d2e0eb19c (4) D - | / rewritten(description, parent, content) by test (*) as d15d0ffc75f6 (glob) + | / rewritten(description, parent, content) as d15d0ffc75f6 by test (*) (glob) | | | x a8df460dbbfe (3) C - | rewritten(description, content) by test (*) as d15d0ffc75f6 (glob) + | rewritten(description, content) as d15d0ffc75f6 by test (*) (glob) | x c473644ee0e9 (2) B - rewritten(description, parent, content) by test (*) as b868bc49b0a4 (glob) + rewritten(description, parent, content) as b868bc49b0a4 by test (*) (glob)
--- a/tests/test-evolve-obshistory.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-obshistory.t Wed Aug 23 23:44:36 2017 +0200 @@ -61,7 +61,7 @@ @ 4ae3a4151de9 (3) A1 | x 471f378eab4c (1) A0 - rewritten(description, content) by test (Thu Jan 01 00:00:00 1970 +0000) as 4ae3a4151de9 + rewritten(description, content) as 4ae3a4151de9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/4ae3a4151de9-changeset-description @@ -1,1 +1,3 @@ @@ -111,7 +111,7 @@ ] $ hg obslog --hidden --patch 471f378eab4c x 471f378eab4c (1) A0 - rewritten(description, content) by test (*) as 4ae3a4151de9 (glob) + rewritten(description, content) as 4ae3a4151de9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/4ae3a4151de9-changeset-description @@ -1,1 +1,3 @@ @@ -353,7 +353,7 @@ Check that debugobshistory on splitted commit show both targets $ hg obslog 471597cad322 --hidden --patch x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) $ hg obslog 471597cad322 --hidden --no-graph -Tjson | python -m json.tool @@ -388,7 +388,7 @@ o 337fec4d2edc (2) A0 | x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) With the all option, it should show the three changesets @@ -398,7 +398,7 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) Check that debugobshistory on the second successor after split show @@ -407,7 +407,7 @@ @ f257fde29c7a (3) A0 | x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) With the all option, it should show the three changesets @@ -417,7 +417,7 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) Obslog with all option all should also works on the splitted commit @@ -427,7 +427,7 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) Check that debugobshistory on both successors after split show @@ -438,7 +438,7 @@ | @ f257fde29c7a (3) A0 |/ x 471597cad322 (1) A0 - rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob) + rewritten(parent, content) as 337fec4d2edc, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (2)) $ hg update 471597cad322 @@ -606,7 +606,7 @@ $ hg obslog de7290d8b885 --hidden --patch x de7290d8b885 (1) A0 - rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (4)) $ hg obslog de7290d8b885 --hidden --all --patch @@ -619,7 +619,7 @@ | o f257fde29c7a (3) A0 |/ x de7290d8b885 (1) A0 - rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (4)) $ hg obslog de7290d8b885 --hidden --no-graph -Tjson | python -m json.tool @@ -654,7 +654,7 @@ @ c7f044602e9b (5) A0 | x de7290d8b885 (1) A0 - rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (4)) $ hg obslog c7f044602e9b --no-graph -Tjson | python -m json.tool @@ -702,7 +702,7 @@ | o f257fde29c7a (3) A0 |/ x de7290d8b885 (1) A0 - rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (4)) $ hg obslog 5 --all --patch @@ -715,7 +715,7 @@ | o f257fde29c7a (3) A0 |/ x de7290d8b885 (1) A0 - rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) + rewritten(parent, content) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a by test (*) (glob) (No patch available yet, too many successors (4)) $ hg update de7290d8b885 @@ -790,7 +790,7 @@ the revision with the target $ hg obslog --hidden 471f378eab4c --patch x 471f378eab4c (1) A0 - rewritten(description, content) by test (*) as eb5a0daa2192 (glob) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -809,11 +809,11 @@ @ eb5a0daa2192 (3) C0 |\ x | 0dec01379d3b (2) B0 - / rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob) + / rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) | (No patch available yet, changesets rebased) | x 471f378eab4c (1) A0 - rewritten(description, content) by test (*) as eb5a0daa2192 (glob) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -831,7 +831,7 @@ the revision with the target $ hg obslog --hidden 0dec01379d3b --patch x 0dec01379d3b (2) B0 - rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob) + rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) (No patch available yet, changesets rebased) Check that with all option, all changesets are shown @@ -839,11 +839,11 @@ @ eb5a0daa2192 (3) C0 |\ x | 0dec01379d3b (2) B0 - / rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob) + / rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) | (No patch available yet, changesets rebased) | x 471f378eab4c (1) A0 - rewritten(description, content) by test (*) as eb5a0daa2192 (glob) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -863,11 +863,11 @@ @ eb5a0daa2192 (3) C0 |\ x | 0dec01379d3b (2) B0 - / rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob) + / rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) | (No patch available yet, changesets rebased) | x 471f378eab4c (1) A0 - rewritten(description, content) by test (*) as eb5a0daa2192 (glob) + rewritten(description, content) as eb5a0daa2192 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/eb5a0daa2192-changeset-description @@ -1,1 +1,1 @@ @@ -996,14 +996,14 @@ | parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A2 | | o changeset: 2:fdf9bde5129a |/ parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A1 | | x changeset: 1:471f378eab4c @@ -1024,14 +1024,14 @@ Check that debugobshistory on the divergent revision show both destinations $ hg obslog --hidden 471f378eab4c --patch x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1047,14 +1047,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1106,14 +1106,14 @@ o fdf9bde5129a (2) A1 | x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1129,14 +1129,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1150,14 +1150,14 @@ @ 65b757b745b9 (3) A2 | x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1172,14 +1172,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1195,14 +1195,14 @@ | o fdf9bde5129a (2) A1 |/ x 471f378eab4c (1) A0 - rewritten(description) by test (*) as 65b757b745b9 (glob) + rewritten(description) as 65b757b745b9 by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/65b757b745b9-changeset-description @@ -1,1 +1,1 @@ -A0 +A2 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1267,7 +1267,7 @@ $ hg update --hidden 'desc(A0)' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (471f378eab4c) - (471f378eab4c has diverged, use 'hg evolve --list --divergent' to resolve the issue) + (471f378eab4c has diverged, use 'hg evolve --list --contentdivergent' to resolve the issue) Test output with amended + folded commit ======================================== @@ -1348,7 +1348,7 @@ @ eb5a0daa2192 (4) C0 |\ x | 471f378eab4c (1) A0 - / rewritten(description, content) by test (*) as eb5a0daa2192 (glob) + / rewritten(description, content) as eb5a0daa2192 by test (*) (glob) | --- a/471f378eab4c-changeset-description | +++ b/eb5a0daa2192-changeset-description | @@ -1,1 +1,1 @@ @@ -1363,11 +1363,11 @@ | | x b7ea6d14e664 (3) B1 - | rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob) + | rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) | (No patch available yet, changesets rebased) | x 0dec01379d3b (2) B0 - rewritten(description) by test (*) as b7ea6d14e664 (glob) + rewritten(description) as b7ea6d14e664 by test (*) (glob) --- a/0dec01379d3b-changeset-description +++ b/b7ea6d14e664-changeset-description @@ -1,1 +1,1 @@ @@ -1380,7 +1380,7 @@ @ eb5a0daa2192 (4) C0 |\ x | 471f378eab4c (1) A0 - / rewritten(description, content) by test (*) as eb5a0daa2192 (glob) + / rewritten(description, content) as eb5a0daa2192 by test (*) (glob) | --- a/471f378eab4c-changeset-description | +++ b/eb5a0daa2192-changeset-description | @@ -1,1 +1,1 @@ @@ -1395,11 +1395,11 @@ | | x b7ea6d14e664 (3) B1 - | rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob) + | rewritten(description, parent, content) as eb5a0daa2192 by test (*) (glob) | (No patch available yet, changesets rebased) | x 0dec01379d3b (2) B0 - rewritten(description) by test (*) as b7ea6d14e664 (glob) + rewritten(description) as b7ea6d14e664 by test (*) (glob) --- a/0dec01379d3b-changeset-description +++ b/b7ea6d14e664-changeset-description @@ -1,1 +1,1 @@ @@ -1577,7 +1577,7 @@ @ 7a230b46bf61 (3) A2 | x fdf9bde5129a (2) A1 - | rewritten(description) by test (*) as 7a230b46bf61 (glob) + | rewritten(description) as 7a230b46bf61 by test (*) (glob) | --- a/fdf9bde5129a-changeset-description | +++ b/7a230b46bf61-changeset-description | @@ -1,1 +1,1 @@ @@ -1586,7 +1586,7 @@ | | x 471f378eab4c (1) A0 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) --- a/471f378eab4c-changeset-description +++ b/fdf9bde5129a-changeset-description @@ -1,1 +1,1 @@ @@ -1613,21 +1613,21 @@ o 7a230b46bf61 (2) A2 | x fdf9bde5129a - | rewritten(description) by test (*) as 7a230b46bf61 (glob) + | rewritten(description) as 7a230b46bf61 by test (*) (glob) | (No patch available yet, context is not local) | @ 471f378eab4c (1) A0 - rewritten(description) by test (*) as fdf9bde5129a (glob) + rewritten(description) as fdf9bde5129a by test (*) (glob) (No patch available yet, succ is unknown locally) $ hg obslog 7a230b46bf61 --color=debug --patch o [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2] | x [evolve.node evolve.missing_change_ctx|fdf9bde5129a] - | [evolve.verb|rewritten](description) by [evolve.user|test] [evolve.date|(*)] as [evolve.node|7a230b46bf61] (glob) + | [evolve.verb|rewritten](description) as [evolve.node|7a230b46bf61] by [evolve.user|test] [evolve.date|(*)] (glob) | (No patch available yet, context is not local) | @ [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0] - [evolve.verb|rewritten](description) by [evolve.user|test] [evolve.date|(*)] as [evolve.node|fdf9bde5129a] (glob) + [evolve.verb|rewritten](description) as [evolve.node|fdf9bde5129a] by [evolve.user|test] [evolve.date|(*)] (glob) (No patch available yet, succ is unknown locally)
--- a/tests/test-evolve-order.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-order.t Wed Aug 23 23:44:36 2017 +0200 @@ -102,7 +102,7 @@ |/ o 0:f92638be10c7@default(public) add p - $ hg evolve --rev "unstable()" + $ hg evolve --rev "orphan()" move:[11] bprime atop:[12] asecond move:[7] add _c @@ -257,7 +257,7 @@ 2 files updated, 0 files merged, 3 files removed, 0 files unresolved $ hg amend -m 'b3second' 1 new unstable changesets - $ hg evolve --rev 'unstable()' + $ hg evolve --rev "orphan()" move:[30] add b4_ atop:[35] b3second skipping 0b9488394e89: divergent rewriting. can't choose destination
--- a/tests/test-evolve-templates.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve-templates.t Wed Aug 23 23:44:36 2017 +0200 @@ -79,10 +79,10 @@ o d004c8f274b9 (4) A2 | x a468dc9b3633 (3) A1 - | rewritten(description) by test2 (Thu Apr 19 04:25:21 2001 +0000) as d004c8f274b9 + | rewritten(description) as d004c8f274b9 by test2 (Thu Apr 19 04:25:21 2001 +0000) | @ 471f378eab4c (1) A0 - rewritten(description, content) by test1 (Fri Feb 13 23:31:30 2009 +0000) as a468dc9b3633 + rewritten(description, content) as a468dc9b3633 by test1 (Fri Feb 13 23:31:30 2009 +0000) $ hg tlog o d004c8f274b9 @@ -91,7 +91,7 @@ | @ 471f378eab4c |/ Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: rewritten by test1, test2 as d004c8f274b9 + | Fate: rewritten as d004c8f274b9 by test1, test2 | o ea207398892e @@ -108,7 +108,7 @@ o d004c8f274b9 | | @ 471f378eab4c - |/ Obsfate: rewritten by test1, test2 as d004c8f274b9 + |/ Obsfate: rewritten as d004c8f274b9 by test1, test2 | o ea207398892e @@ -116,7 +116,7 @@ o d004c8f274b9 | | @ 471f378eab4c - |/ Obsfate: rewritten by test1, test2 as d004c8f274b9 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000) + |/ Obsfate: rewritten as d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000) | o ea207398892e @@ -152,7 +152,7 @@ | @ a468dc9b3633 |/ Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: rewritten by test2 as d004c8f274b9 + | Fate: rewritten as d004c8f274b9 by test2 | o ea207398892e @@ -167,7 +167,7 @@ | semi-colon: 471f378eab4c | Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: rewritten by test2 as d004c8f274b9 + | Fate: rewritten as d004c8f274b9 by test2 | | x f137d23bb3e1 | | Fate: pruned by test1 @@ -175,7 +175,7 @@ | x 471f378eab4c |/ Successors: [a468dc9b3633] | semi-colon: [a468dc9b3633] - | Fate: rewritten by test1 as a468dc9b3633 + | Fate: rewritten as a468dc9b3633 by test1 | o ea207398892e @@ -183,7 +183,7 @@ o d004c8f274b9 | | @ a468dc9b3633 - |/ Obsfate: rewritten by test2 as d004c8f274b9 (at 2001-04-19 04:25 +0000) + |/ Obsfate: rewritten as d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000) | o ea207398892e @@ -203,7 +203,7 @@ | semi-colon: 471f378eab4c | Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: rewritten by test2 as d004c8f274b9 + | Fate: rewritten as d004c8f274b9 by test2 | | x f137d23bb3e1 | | Fate: pruned by test1 @@ -211,7 +211,7 @@ | x 471f378eab4c |/ Successors: [a468dc9b3633] | semi-colon: [a468dc9b3633] - | Fate: rewritten by test1 as a468dc9b3633 + | Fate: rewritten as a468dc9b3633 by test1 | o ea207398892e @@ -225,13 +225,13 @@ @ d004c8f274b9 | | x a468dc9b3633 - |/ Obsfate: rewritten by test2 as d004c8f274b9 (at 2001-04-19 04:25 +0000) + |/ Obsfate: rewritten as d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000) | | x f137d23bb3e1 | | Obsfate: pruned by test1 (at 2009-02-13 23:31 +0000) | | | x 471f378eab4c - |/ Obsfate: rewritten by test1 as a468dc9b3633 (at 2009-02-13 23:31 +0000) + |/ Obsfate: rewritten as a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000) | o ea207398892e @@ -625,14 +625,14 @@ | parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A2 | | o changeset: 2:fdf9bde5129a |/ parent: 0:ea207398892e | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent + | instability: content-divergent | summary: A1 | | x changeset: 1:471f378eab4c @@ -655,7 +655,7 @@ $ hg up 'desc(A0)' --hidden 0 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (471f378eab4c) - (471f378eab4c has diverged, use 'hg evolve --list --divergent' to resolve the issue) + (471f378eab4c has diverged, use 'hg evolve --list --contentdivergent' to resolve the issue) Precursors template should show current revision as it is the working copy $ hg tlog @@ -1074,7 +1074,7 @@ o 7a230b46bf61 | | @ 471f378eab4c - |/ Obsfate: rewritten by test as 7a230b46bf61 (at 1970-01-01 00:00 +0000) + |/ Obsfate: rewritten as 7a230b46bf61 by test (at 1970-01-01 00:00 +0000) | o ea207398892e @@ -1105,7 +1105,7 @@ @ 7a230b46bf61 | | x 471f378eab4c - |/ Obsfate: rewritten by test as 7a230b46bf61 (at 1970-01-01 00:00 +0000) + |/ Obsfate: rewritten as 7a230b46bf61 by test (at 1970-01-01 00:00 +0000) | o ea207398892e
--- a/tests/test-evolve.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-evolve.t Wed Aug 23 23:44:36 2017 +0200 @@ -412,7 +412,7 @@ | o 0 : base - test - $ hg evolve --any --traceback --bumped + $ hg evolve --any --traceback --phasedivergent recreate:[8] another feature that rox atop:[7] another feature (child of ba0ec09b1bab) computing new diff @@ -435,7 +435,7 @@ @@ -3,1 +3,1 @@ -Zwei +deux - $ hg log -r 'bumped()' # no more bumped + $ hg log -r 'phasedivergent()' # no more bumped test evolve --all $ sed -i'' -e s/deux/to/ main-file-1 @@ -453,9 +453,9 @@ $ hg log -G --template '{rev} {troubles}\n' @ 13 | - | o 11 unstable + | o 11 orphan | | - | o 10 unstable + | o 10 orphan | | | x 9 |/ @@ -770,12 +770,12 @@ @ d26d339c513f (12) add 4 |\ x | af636757ce3b (11) add 3 - |\ \ rewritten(description, user, parent, content) by test (*) as d26d339c513f (glob) + |\ \ rewritten(description, user, parent, content) as d26d339c513f by test (*) (glob) | | | | \ \ | |\ \ | | | x ce341209337f (4) add 4 - | | | rewritten(description, user, content) by test (*) as d26d339c513f (glob) + | | | rewritten(description, user, content) as d26d339c513f by test (*) (glob) | | | Test obsstore stat @@ -971,7 +971,7 @@ $ hg evolve nothing to evolve on current working copy parent - (2 other unstable in the repository, do you want --any or --rev) + (2 other orphan in the repository, do you want --any or --rev) [2] @@ -1049,7 +1049,7 @@ |/ o 0 : a0 - test - $ hg evolve -r 12 --bumped + $ hg evolve -r 12 --phasedivergent recreate:[12] add new file bumped atop:[11] a2 computing new diff @@ -1110,11 +1110,11 @@ set of specified revisions is empty [1] - $ hg evolve --rev "14::" --bumped - no bumped changesets in specified revisions - (do you want to use --unstable) + $ hg evolve --rev "14::" --phasedivergent + no phasedivergent changesets in specified revisions + (do you want to use --orphan) [2] - $ hg evolve --rev "14::" --unstable + $ hg evolve --rev "14::" --orphan move:[15] add gg atop:[18] a3 move:[16] add gh @@ -1312,7 +1312,7 @@ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg evolve --all nothing to evolve on current working copy parent - (2 other unstable in the repository, do you want --any or --rev) + (2 other orphan in the repository, do you want --any or --rev) [2] $ hg evolve --all --any move:[22] add j2
--- a/tests/test-inhibit.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-inhibit.t Wed Aug 23 23:44:36 2017 +0200 @@ -159,6 +159,7 @@ o 0:54ccbc537fc2 add cA $ hg phase --public 7 + 1 new bumped changesets $ hg strip 9 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory now at cf5c4f4554ce
--- a/tests/test-obsolete.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-obsolete.t Wed Aug 23 23:44:36 2017 +0200 @@ -145,7 +145,7 @@ $ qlog -r 'suspended()' 3 - 0d3f46688ccc - $ qlog -r 'unstable()' + $ qlog -r "orphan()" 5 - a7a6f2b5d8a5 @@ -175,7 +175,7 @@ $ hg push ../other-new pushing to ../other-new searching for changes - abort: push includes unstable changeset: a7a6f2b5d8a5! + abort: push includes orphan changeset: a7a6f2b5d8a5! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] $ hg push -f ../other-new @@ -230,7 +230,7 @@ $ hg push ../other-new pushing to ../other-new searching for changes - abort: push includes unstable changeset: 95de7fc6918d! + abort: push includes orphan changeset: 95de7fc6918d! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] $ hg push ../other-new -f # use f because there is unstability @@ -397,7 +397,7 @@ commit: 1 deleted, 2 unknown (clean) update: 2 new changesets, 2 branch heads (merge) phases: 4 draft - unstable: 1 changesets + orphan: 1 changesets $ qlog 6 - 909a0fb57e5d @@ -586,19 +586,19 @@ | o 0 - (public) 1f0dee641bb7 add a - $ hg log -r 'bumped()' + $ hg log -r 'phasedivergent()' changeset: 12:6db5e282cb91 tag: tip parent: 10:2033b4e49474 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: bumped + instability: phase-divergent summary: add obsol_d''' $ hg push ../other-new/ pushing to ../other-new/ searching for changes - abort: push includes bumped changeset: 6db5e282cb91! + abort: push includes phase-divergent changeset: 6db5e282cb91! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] @@ -622,7 +622,7 @@ |/ parent: 10:2033b4e49474 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: bumped + | instability: phase-divergent | summary: add obsol_d''' | | o changeset: 11:9468a5f5d8b2 @@ -679,14 +679,14 @@ commit: (clean) update: (2|9|11) new changesets, (3|9|10) branch heads \(merge\) (re) phases: 3 draft - bumped: 1 changesets + phase-divergent: 1 changesets $ hg debugobsolete `getid a7a6f2b5d8a5` `getid 50f11e5e3a63` - $ hg log -r 'divergent()' + $ hg log -r 'contentdivergent()' changeset: 12:6db5e282cb91 parent: 10:2033b4e49474 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: bumped, divergent + instability: phase-divergent, content-divergent summary: add obsol_d''' changeset: 16:50f11e5e3a63 @@ -694,7 +694,7 @@ parent: 11:9468a5f5d8b2 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: divergent + instability: content-divergent summary: add obsolet_conflicting_d @@ -707,11 +707,11 @@ [2] $ hg olog @ 0d3f46688ccc (3) add obsol_c - | rewritten(parent) by test (*) as 2033b4e49474 (glob) - | rewritten by test (*) as 725c380fe99b (glob) + | rewritten(parent) as 2033b4e49474 by test (*) (glob) + | rewritten as 725c380fe99b by test (*) (glob) | x 4538525df7e2 (2) add c - rewritten by test (*) as 0d3f46688ccc (glob) + rewritten as 0d3f46688ccc by test (*) (glob) Check import reports new unstable changeset: @@ -719,7 +719,7 @@ $ hg up --hidden 2 1 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory parent is obsolete! (4538525df7e2) - (4538525df7e2 has diverged, use 'hg evolve --list --divergent' to resolve the issue) + (4538525df7e2 has diverged, use 'hg evolve --list --contentdivergent' to resolve the issue) $ hg export 9468a5f5d8b2 | hg import - applying patch from stdin 1 new unstable changesets @@ -734,14 +734,14 @@ | parent: 2:4538525df7e2 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: unstable + | instability: orphan | summary: add obsol_d'' | | o changeset: 16:50f11e5e3a63 | | parent: 11:9468a5f5d8b2 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: divergent + | | instability: content-divergent | | summary: add obsolet_conflicting_d | | | | o changeset: 15:705ab2a6b72e @@ -767,7 +767,7 @@ | | |/ parent: 10:2033b4e49474 | | | user: test | | | date: Thu Jan 01 00:00:00 1970 +0000 - | | | trouble: bumped, divergent + | | | instability: phase-divergent, content-divergent | | | summary: add obsol_d''' | | | | o | changeset: 11:9468a5f5d8b2
--- a/tests/test-sharing.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-sharing.t Wed Aug 23 23:44:36 2017 +0200 @@ -514,13 +514,13 @@ 7:e3f99ce9d9cd draft fix bug 24 (v2 by alice) Use evolve to fix the divergence. - $ HGMERGE=internal:other hg evolve --divergent + $ HGMERGE=internal:other hg evolve --contentdivergent merge:[6] fix bug 24 (v2 by bob) with: [7] fix bug 24 (v2 by alice) base: [4] fix bug 24 (v1) 0 files updated, 1 files merged, 0 files removed, 0 files unresolved working directory is now at 5ad6037c046c - $ hg log -q -r 'divergent()' + $ hg log -q -r 'contentdivergent()' Figure SG10: Bob's repository after fixing divergence. $ hg --hidden shortlog -G -r 3::
--- a/tests/test-stabilize-conflict.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-stabilize-conflict.t Wed Aug 23 23:44:36 2017 +0200 @@ -65,7 +65,7 @@ $ safesed 's/huit/eight/' babar $ hg diff diff -r 9d5daf8bd956 babar - --- a/babar Thu Jan 01 00:00:00 1970 +0000 + --- a/babar * (glob) +++ b/babar * (glob) @@ -5,6 +5,6 @@ cinq @@ -114,7 +114,7 @@ $ hg diff diff -r 5977072d13c5 babar --- a/babar Thu Jan 01 00:00:00 1970 +0000 - +++ b/babar * (glob) + +++ b/babar Thu Jan 01 00:00:00 1970 +0000 @@ -7,4 +7,4 @@ sept eight @@ -145,7 +145,7 @@ | o changeset: 5:71c18f70c34f | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: babar count up to fifteen | | | x changeset: 4:5977072d13c5 @@ -237,7 +237,7 @@ | o changeset: 8:1836b91c6c1d | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: babar count up to fifteen | | | x changeset: 7:e04690b09bc6
--- a/tests/test-stabilize-order.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-stabilize-order.t Wed Aug 23 23:44:36 2017 +0200 @@ -110,10 +110,10 @@ --- successors.old* (glob) +++ successors.new* (glob) @@ -3,3 +3,4 @@ - 93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 (*) {'ef1': '*', 'user': 'test'} (glob) - 7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {93418d2c0979643ad446f621195e78720edb05b4} (*) {'ef1': '*', 'user': 'test'} (glob) - 22619daeed78036f80fbd326b6852519c4f0c25e 81b8bbcd5892841efed41433d7a5e9df922396cb 0 (*) {'ef1': '*', 'user': 'test'} (glob) - +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 0f691739f91762462bf8ba21f35fdf71fe64310e 0 (*) {'ef1': '*', 'user': 'test'} (glob) + 93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 (*) {'ef1': '8', 'user': 'test'} (glob) + 7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {93418d2c0979643ad446f621195e78720edb05b4} (*) {'ef1': '0', 'user': 'test'} (glob) + 22619daeed78036f80fbd326b6852519c4f0c25e 81b8bbcd5892841efed41433d7a5e9df922396cb 0 (*) {'ef1': '4', 'user': 'test'} (glob) + +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 0f691739f91762462bf8ba21f35fdf71fe64310e 0 (*) {'ef1': '4', 'user': 'test'} (glob) [1] @@ -153,7 +153,7 @@ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg evolve -v nothing to evolve on current working copy parent - (1 other unstable in the repository, do you want --any or --rev) + (1 other orphan in the repository, do you want --any or --rev) [2] $ hg evolve --any -v move:[9] addc @@ -179,7 +179,7 @@ o 0:c471ef929e6a@default(draft) addroot $ hg evolve --any -v - no unstable changesets to evolve + no orphan changesets to evolve [1] Ambiguous evolution @@ -208,13 +208,13 @@ | | parent: 12:2256dae6521f | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: secondambiguous | | | | o changeset: 13:bdc003b6eec2 | |/ user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: firstambiguous | | | x changeset: 12:2256dae6521f
--- a/tests/test-stabilize-result.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-stabilize-result.t Wed Aug 23 23:44:36 2017 +0200 @@ -86,7 +86,7 @@ fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort abort: unresolved merge conflicts (see hg help resolve) [255] - $ hg revert -r 'unstable()' a + $ hg revert -r "orphan()" a $ hg diff diff -r 66719795a494 a --- a/a * (glob) @@ -156,20 +156,20 @@ Stabilize! - $ hg evolve --any --dry-run --bumped + $ hg evolve --any --dry-run --phasedivergent recreate:[12] newer a atop:[8] newer a - hg rebase --rev (73b15c7566e9|d5c7ef82d003) --dest 66719795a494; (re) + hg rebase --rev d5c7ef82d003 --dest 66719795a494; hg update 1cf0aacfd363; - hg revert --all --rev (73b15c7566e9|d5c7ef82d003); (re) + hg revert --all --rev d5c7ef82d003; hg commit --msg "bumped update to %s" (no-eol) - $ hg evolve --any --confirm --bumped + $ hg evolve --any --confirm --phasedivergent recreate:[12] newer a atop:[8] newer a perform evolve? [Ny] n abort: evolve aborted by user [255] - $ echo y | hg evolve --any --confirm --config ui.interactive=True --bumped + $ echo y | hg evolve --any --confirm --config ui.interactive=True --phasedivergent recreate:[12] newer a atop:[8] newer a perform evolve? [Ny] y @@ -207,7 +207,7 @@ $ glog @ 15:3932c176bbaa@default(draft) bk:[] More addition | - | o 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + | o 14:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | o | 9:7bc2f5967f5e@default(draft) bk:[] add c | | @@ -234,7 +234,7 @@ | | o 17:d2f173e25686@default(draft) bk:[] More addition |/ - | o 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + | o 14:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | o | 9:7bc2f5967f5e@default(draft) bk:[] add c | | @@ -247,14 +247,14 @@ Stabilize it - $ hg evolve -qn --confirm --divergent + $ hg evolve -qn --confirm --contentdivergent merge:[19] More addition with: [17] More addition base: [15] More addition perform evolve? [Ny] n abort: evolve aborted by user [255] - $ echo y | hg evolve -qn --confirm --config ui.interactive=True --divergent + $ echo y | hg evolve -qn --confirm --config ui.interactive=True --contentdivergent merge:[19] More addition with: [17] More addition base: [15] More addition @@ -265,7 +265,7 @@ hg up -C 3932c176bbaa && hg revert --all --rev tip && hg commit -m "`hg log -r eacc9c8240fe --template={desc}`"; - $ hg evolve -v --divergent + $ hg evolve -v --contentdivergent merge:[19] More addition with: [17] More addition base: [15] More addition @@ -289,7 +289,7 @@ $ glog @ 21:f344982e63c4@default(draft) bk:[] More addition | - | o 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + | o 14:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | o | 9:7bc2f5967f5e@default(draft) bk:[] add c | | @@ -341,17 +341,17 @@ 2 new divergent changesets # reamend so that the case is not the first precursor. $ hg amend -m "More addition (2)" - $ hg phase 'divergent()' + $ hg phase 'contentdivergent()' 21: draft 24: draft - $ hg evolve -qn --divergent + $ hg evolve -qn --contentdivergent hg update -c 0b336205a5d0 && hg merge f344982e63c4 && hg commit -m "auto merge resolving conflict between 0b336205a5d0 and f344982e63c4"&& hg up -C 3932c176bbaa && hg revert --all --rev tip && hg commit -m "`hg log -r 0b336205a5d0 --template={desc}`"; - $ hg evolve --divergent + $ hg evolve --contentdivergent merge:[24] More addition (2) with: [21] More addition base: [15] More addition
--- a/tests/test-topic-stack-data.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-topic-stack-data.t Wed Aug 23 23:44:36 2017 +0200 @@ -103,7 +103,7 @@ commit: (clean) update: 2 new changesets (update) phases: 22 draft - unstable: 3 changesets + orphan: 3 changesets topic: foo $ hg log --graph -T '{desc} ({branch}) [{topic}]' @ add foo_b (lake) []
--- a/tests/test-topic-tutorial.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-topic-tutorial.t Wed Aug 23 23:44:36 2017 +0200 @@ -687,14 +687,14 @@ | | topic: tools | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: Adding drill | | | o changeset: 14:d4f97f32f8a1 | | topic: tools | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: Adding saw | | | x changeset: 13:a8ab3599d53d
--- a/tests/test-topic.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-topic.t Wed Aug 23 23:44:36 2017 +0200 @@ -587,7 +587,7 @@ | @ changeset: 10:4073470c35e1 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fran? | | @@ -612,17 +612,17 @@ changeset: 12:18b70b8de1f0 user: test date: Thu Jan 01 00:00:00 1970 +0000 - trouble: unstable + instability: orphan summary: fran? $ hg sum - parent: 12:18b70b8de1f0 (unstable) + parent: 12:18b70b8de1f0 (orphan) fran? branch: default commit: (clean) update: 5 new changesets, 2 branch heads (merge) phases: 3 draft - unstable: 1 changesets + orphan: 1 changesets $ hg topic wat $ hg log -Gr 'draft() and not obsolete()' @@ -637,7 +637,7 @@ | @ changeset: 12:18b70b8de1f0 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable + | | instability: orphan | | summary: fran? | |
--- a/tests/test-tutorial.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-tutorial.t Wed Aug 23 23:44:36 2017 +0200 @@ -685,7 +685,7 @@ $ hg push other pushing to $TESTTMP/other (glob) searching for changes - abort: push includes unstable changeset: bf1b0d202029! + abort: push includes orphan changeset: bf1b0d202029! (use 'hg evolve' to get a stable history or --force to ignore warnings) [255] @@ -826,7 +826,7 @@ | o 7e82d3f3c2cb (public): Monthy Python Shopping list - $ hg log -r 'unstable()' + $ hg log -r "orphan()" 99f039c5ec9e (draft): SPAM SPAM SPAM $ hg evolve
--- a/tests/test-uncommit.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-uncommit.t Wed Aug 23 23:44:36 2017 +0200 @@ -287,7 +287,7 @@ $ hg up -C 3 --hidden 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (5eb72dbe0cb4) - (5eb72dbe0cb4 has diverged, use 'hg evolve --list --divergent' to resolve the issue) + (5eb72dbe0cb4 has diverged, use 'hg evolve --list --contentdivergent' to resolve the issue) $ hg --config extensions.purge= purge $ hg uncommit --all -X e 1 new divergent changesets
--- a/tests/test-unstable.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-unstable.t Wed Aug 23 23:44:36 2017 +0200 @@ -53,7 +53,7 @@ o 0:135f39f4bd78@default(draft) add _a - $ hg evo --all --any --unstable + $ hg evo --all --any --orphan move:[2] add _c atop:[3] bprime working directory is now at fdcf3523a74d @@ -99,7 +99,7 @@ o 0:b4952fcf48cf@default(draft) add base - $ hg evo --all --any --unstable + $ hg evo --all --any --orphan move:[3] merge atop:[4] aprime working directory is now at 0bf3f3a59c8c @@ -152,7 +152,7 @@ o 0:b4952fcf48cf@default(draft) add base - $ hg evo --all --any --unstable + $ hg evo --all --any --orphan warning: no support for evolving merge changesets with two obsolete parents yet (Redo the merge (6b4280e33286) and use `hg prune <old> --succ <new>` to obsolete the old one) $ hg log -G @@ -198,7 +198,7 @@ o 0:135f39f4bd78@default(draft) add _a - $ hg evo --all --any --unstable + $ hg evo --all --any --orphan move:[2] add _c atop:[4] add bprimesplit2 working directory is now at 387cc1e837d7 @@ -252,7 +252,7 @@ o 0:135f39f4bd78@default(draft) add _a - $ hg evo --all --any --unstable + $ hg evo --all --any --orphan move:[2] add _c atop:[6] add bsecondsplit2 working directory is now at 98e3f21461ff @@ -301,7 +301,7 @@ o 0:135f39f4bd78@default(draft) add _a - $ hg evo --all --any --unstable + $ hg evo --all --any --orphan cannot solve split accross two branches $ hg log -G @ 4:3c69ea6aa93e@default(draft) add bprimesplit2
--- a/tests/test-userguide.t Mon Aug 21 14:21:49 2017 +0200 +++ b/tests/test-userguide.t Wed Aug 23 23:44:36 2017 +0200 @@ -168,7 +168,7 @@ 2 new unstable changesets $ hg shortlog -r 'obsolete()' 11:3e1cb8f70c02 draft fix bug 17 - $ hg shortlog -r 'unstable()' + $ hg shortlog -r "orphan()" 12:debd46bb29dc draft cleanup 13:dadcbba2d606 draft feature 23 $ hg --hidden shortlog -G -r 10::