# HG changeset patch # User Pierre-Yves David # Date 1473722717 -7200 # Node ID c9a79b432907634e8a044d4ea033102e9af50328 # Parent 14ace97ffed8c9aeda1d562bfda994603ebdce7d# Parent 8f902ec9ed9a296d92c2c2df1536af8c44b5321c merge with stable diff -r 8f902ec9ed9a -r c9a79b432907 README --- a/README Mon Sep 12 10:41:00 2016 -0700 +++ b/README Tue Sep 13 01:25:17 2016 +0200 @@ -38,7 +38,7 @@ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '' See also -http://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions +https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions for guidelines on the patch description. Please don't forget to update and run the tests when you fix a bug or @@ -56,6 +56,10 @@ Changelog ========= +5.5.0 -- + + - The {obsolete} template now yield "obsolete" or "". + 5.4.2 -- - Fix erroneous manifest computation when solving 'bumped' changeset. @@ -126,7 +130,7 @@ - minor documentation cleanup - support -i option for `hg amend` if commit supports it (3.4) - fix the `debugrecordpruneparents` utility -- fix some possible crash during command abort (release non-existant transaction) +- fix some possible crash during command abort (release nonexistent transaction) - fix simple4server bug tracker URL - compatibility with bookmark API change in future Mercurial 3.5 - prune no longer move the active bookmark for no reason (issue4559) @@ -144,7 +148,7 @@ 5.1.3 -- 2015-04-20 -- discovery: fix misbehaving discovery accros python version +- discovery: fix misbehaving discovery across python version - pull: properly install the bundle2 par generator (avoid sending all markers for each pull) - commit: avoid potential deadlock (acquires wlock before lock) @@ -164,7 +168,7 @@ - evolve: explicitly disable bookmark on evolve (issue4432) - evolve: don't abort Mercurial on version mismatch -- comptatibility with mercurial 3.3 +- compatibility with mercurial 3.3 5.0.2 -- 2014-12-14 @@ -239,7 +243,7 @@ - fix a bug where evolve were creating changeset with 2 parents on windows (fix issues #16, #35 and #42) -- adds a --obsolete flag to import (requieres Mercurial 3.0) +- adds a --obsolete flag to import (requires Mercurial 3.0) - prune: update to successor rather than parent when pruning '.' with -s - fold: add missing --message and --logfile option - fold: add squash as an alias @@ -280,7 +284,7 @@ 3.1.0 -- 2013-02-11 - amend: drop deprecated --change option for amend -- alias: add a grab aliast to be used instead of graft -O +- alias: add a grab alias to be used instead of graft -O - touch: add a --duplicate option to *not* obsolete the old version - touch: fix touching multiple revision at the same time - evolve: add a --all option @@ -358,7 +362,7 @@ 0.6 -- 2012-07-31 - obsolete: change warning output to match mercurial core on -- qsync: ignore unexistent nodes +- qsync: ignore nonexistent nodes - make compat server both compatible with "dump" and "dump%i" version 0.5 -- 2012-07-16 @@ -372,7 +376,7 @@ 0.4.1 -- 2012-07-10 -- [convert] properly exclude null successors from convertion +- [convert] properly exclude null successors from conversion - Ignore buggy marker in newerversion @@ -393,7 +397,7 @@ - revset: add, successors(), allsuccessors(), precursors(), allprecursors(), latecomer() and hidden() - evolve: add `prune` alias to `kill`. -- stabilize: clearly state that stabilize does nto handle conflict +- stabilize: clearly state that stabilize does not handle conflict - template: add an {obsolete} keyword 0.2.0 -- 2012-06-20 diff -r 8f902ec9ed9a -r c9a79b432907 docs/evolve-faq.rst --- a/docs/evolve-faq.rst Mon Sep 12 10:41:00 2016 -0700 +++ b/docs/evolve-faq.rst Tue Sep 13 01:25:17 2016 +0200 @@ -116,7 +116,7 @@ For more complexe scenario we recommend the use of the histedit_ extension. -.. _histedit: http://mercurial.selenic.com/wiki/HisteditExtension +.. _histedit: https://www.mercurial-scm.org/wiki/HisteditExtension Update my current work in progress after a pull diff -r 8f902ec9ed9a -r c9a79b432907 docs/index.rst --- a/docs/index.rst Mon Sep 12 10:41:00 2016 -0700 +++ b/docs/index.rst Tue Sep 13 01:25:17 2016 +0200 @@ -14,7 +14,7 @@ `evolve`_ is an experimental Mercurial extension for safe mutable history. -.. _`evolve`: http://mercurial.selenic.com/wiki/EvolveExtension +.. _`evolve`: https://www.mercurial-scm.org/wiki/EvolveExtension With core Mercurial, changesets are permanent and immutable. You can commit new changesets to modify your source code, but you cannot @@ -99,11 +99,11 @@ * There are still some corner cases that aren't handled yet. If you think you have found such a case, please check if it's already - described in the Mercurial bug tracker (http://bz.selenic.com). + described in the Mercurial bug tracker (https://bz.mercurial-scm.org/). Bugs in ``evolve`` are files under component "evolution": use `this query`_ to view open bugs in ``evolve``. -.. _`this query`: http://bz.selenic.com/buglist.cgi?component=evolution&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEED_EXAMPLE +.. _`this query`: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEED_EXAMPLE Installation and setup ---------------------- diff -r 8f902ec9ed9a -r c9a79b432907 hgext/evolve.py --- a/hgext/evolve.py Mon Sep 12 10:41:00 2016 -0700 +++ b/hgext/evolve.py Tue Sep 13 01:25:17 2016 +0200 @@ -21,7 +21,7 @@ __version__ = '5.4.1' testedwith = '3.4.3 3.5.2 3.6.2 3.7.3 3.8.1 3.9' -buglink = 'http://bz.selenic.com/' +buglink = 'https://bz.mercurial-scm.org/' evolutionhelptext = """ @@ -665,17 +665,11 @@ @eh.templatekw('obsolete') def obsoletekw(repo, ctx, templ, **args): - """:obsolete: String. The obsolescence level of the node, could be - ``stable``, ``unstable``, ``suspended`` or ``extinct``. + """:obsolete: String. Whether the changeset is ``obsolete``. """ if ctx.obsolete(): - if ctx.extinct(): - return 'extinct' - else: - return 'suspended' - elif ctx.unstable(): - return 'unstable' - return 'stable' + return 'obsolete' + return '' @eh.templatekw('troubles') def showtroubles(repo, ctx, **args): @@ -964,28 +958,25 @@ tr = repo.currenttransaction() assert tr is not None try: - try: - r = _evolvemerge(repo, orig, dest, pctx, keepbranch) - if r[-1]: #some conflict - raise error.Abort( - 'unresolved merge conflicts (see hg help resolve)') - nodenew = _relocatecommit(repo, orig, commitmsg) - except error.Abort as exc: - repo.dirstate.beginparentchange() - repo.setparents(repo['.'].node(), nullid) - writedirstate(repo.dirstate, tr) - # fix up dirstate for copies and renames - copies.duplicatecopies(repo, dest.rev(), orig.p1().rev()) - repo.dirstate.endparentchange() - class LocalMergeFailure(MergeFailure, exc.__class__): - pass - exc.__class__ = LocalMergeFailure - tr.close() # to keep changes in this transaction (e.g. dirstate) - raise - oldbookmarks = repo.nodebookmarks(nodesrc) - _finalizerelocate(repo, orig, dest, nodenew, tr) - finally: - pass # TODO: remove this redundant try/finally block + r = _evolvemerge(repo, orig, dest, pctx, keepbranch) + if r[-1]: #some conflict + raise error.Abort( + 'unresolved merge conflicts (see hg help resolve)') + nodenew = _relocatecommit(repo, orig, commitmsg) + except error.Abort as exc: + repo.dirstate.beginparentchange() + repo.setparents(repo['.'].node(), nullid) + writedirstate(repo.dirstate, tr) + # fix up dirstate for copies and renames + copies.duplicatecopies(repo, dest.rev(), orig.p1().rev()) + repo.dirstate.endparentchange() + class LocalMergeFailure(MergeFailure, exc.__class__): + pass + exc.__class__ = LocalMergeFailure + tr.close() # to keep changes in this transaction (e.g. dirstate) + raise + oldbookmarks = repo.nodebookmarks(nodesrc) + _finalizerelocate(repo, orig, dest, nodenew, tr) return nodenew def _bookmarksupdater(repo, oldid, tr): @@ -1024,7 +1015,7 @@ ### dirstate compatibility layer < hg 3.6 def writedirstate(dirstate, tr): - if dirstate.write.func_defaults is not None: # mercurial 3.6 and above + if dirstate.write.func_code.co_argcount != 1: # mercurial 3.6 and above return dirstate.write(tr) return dirstate.write() @@ -1794,14 +1785,18 @@ raise error.Abort('no evolve to continue') orig = repo[state['current']] # XXX This is a terrible terrible hack, please get rid of it. - repo.opener.write('graftstate', orig.hex() + '\n') + lock = repo.wlock() try: - graftcmd = commands.table['graft'][0] - ret = graftcmd(ui, repo, old_obsolete=True, **{'continue': True}) - _evolvestatedelete(repo) - return ret + repo.opener.write('graftstate', orig.hex() + '\n') + try: + graftcmd = commands.table['graft'][0] + ret = graftcmd(ui, repo, old_obsolete=True, **{'continue': True}) + _evolvestatedelete(repo) + return ret + finally: + util.unlinkpath(repo.join('graftstate'), ignoremissing=True) finally: - util.unlinkpath(repo.join('graftstate'), ignoremissing=True) + lock.release() cmdutil.bailifchanged(repo) @@ -1994,73 +1989,70 @@ tr = repo.currenttransaction() assert tr is not None bmupdate = _bookmarksupdater(repo, bumped.node(), tr) - try: - if not list(repo.set('parents(%d) and parents(%d)', bumped, prec)): - # Need to rebase the changeset at the right place - repo.ui.status( - _('rebasing to destination parent: %s\n') % prec.p1()) - try: - tmpid = relocate(repo, bumped, prec.p1()) - if tmpid is not None: - tmpctx = repo[tmpid] - obsolete.createmarkers(repo, [(bumped, (tmpctx,))]) - except MergeFailure: - repo.opener.write('graftstate', bumped.hex() + '\n') - repo.ui.write_err(_('evolution failed!\n')) - repo.ui.write_err( - _('fix conflict and run "hg evolve --continue"\n')) - raise - # Create the new commit context - repo.ui.status(_('computing new diff\n')) - files = set() - copied = copies.pathcopies(prec, bumped) - precmanifest = prec.manifest().copy() - # 3.3.2 needs a list. - # future 3.4 don't detect the size change during iteration - # this is fishy - for key, val in list(bumped.manifest().iteritems()): - precvalue = precmanifest.get(key, None) - if precvalue is not None: - del precmanifest[key] - if precvalue != val: - files.add(key) - files.update(precmanifest) # add missing files - # commit it - if files: # something to commit! - def filectxfn(repo, ctx, path): - if path in bumped: - fctx = bumped[path] - flags = fctx.flags() - mctx = memfilectx(repo, fctx.path(), fctx.data(), - islink='l' in flags, - isexec='x' in flags, - copied=copied.get(path)) - return mctx - return None - text = 'bumped update to %s:\n\n' % prec - text += bumped.description() - - new = context.memctx(repo, - parents=[prec.node(), node.nullid], - text=text, - files=files, - filectxfn=filectxfn, - user=bumped.user(), - date=bumped.date(), - extra=bumped.extra()) - - newid = repo.commitctx(new) - if newid is None: - obsolete.createmarkers(repo, [(tmpctx, ())]) - newid = prec.node() - else: - phases.retractboundary(repo, tr, bumped.phase(), [newid]) - obsolete.createmarkers(repo, [(tmpctx, (repo[newid],))], - flag=obsolete.bumpedfix) - bmupdate(newid) - repo.ui.status(_('committed as %s\n') % node.short(newid)) - finally: - pass # TODO: remove this redundant try/finally block + if not list(repo.set('parents(%d) and parents(%d)', bumped, prec)): + # Need to rebase the changeset at the right place + repo.ui.status( + _('rebasing to destination parent: %s\n') % prec.p1()) + try: + tmpid = relocate(repo, bumped, prec.p1()) + if tmpid is not None: + tmpctx = repo[tmpid] + obsolete.createmarkers(repo, [(bumped, (tmpctx,))]) + except MergeFailure: + repo.opener.write('graftstate', bumped.hex() + '\n') + repo.ui.write_err(_('evolution failed!\n')) + repo.ui.write_err( + _('fix conflict and run "hg evolve --continue"\n')) + raise + # Create the new commit context + repo.ui.status(_('computing new diff\n')) + files = set() + copied = copies.pathcopies(prec, bumped) + precmanifest = prec.manifest().copy() + # 3.3.2 needs a list. + # future 3.4 don't detect the size change during iteration + # this is fishy + for key, val in list(bumped.manifest().iteritems()): + precvalue = precmanifest.get(key, None) + if precvalue is not None: + del precmanifest[key] + if precvalue != val: + files.add(key) + files.update(precmanifest) # add missing files + # commit it + if files: # something to commit! + def filectxfn(repo, ctx, path): + if path in bumped: + fctx = bumped[path] + flags = fctx.flags() + mctx = memfilectx(repo, fctx.path(), fctx.data(), + islink='l' in flags, + isexec='x' in flags, + copied=copied.get(path)) + return mctx + return None + text = 'bumped update to %s:\n\n' % prec + text += bumped.description() + + new = context.memctx(repo, + parents=[prec.node(), node.nullid], + text=text, + files=files, + filectxfn=filectxfn, + user=bumped.user(), + date=bumped.date(), + extra=bumped.extra()) + + newid = repo.commitctx(new) + if newid is None: + obsolete.createmarkers(repo, [(tmpctx, ())]) + newid = prec.node() + else: + phases.retractboundary(repo, tr, bumped.phase(), [newid]) + obsolete.createmarkers(repo, [(tmpctx, (repo[newid],))], + flag=obsolete.bumpedfix) + bmupdate(newid) + repo.ui.status(_('committed as %s\n') % node.short(newid)) # reroute the working copy parent to the new changeset repo.dirstate.beginparentchange() repo.dirstate.setparents(newid, node.nullid) diff -r 8f902ec9ed9a -r c9a79b432907 hgext/simple4server.py --- a/hgext/simple4server.py Mon Sep 12 10:41:00 2016 -0700 +++ b/hgext/simple4server.py Tue Sep 13 01:25:17 2016 +0200 @@ -8,8 +8,8 @@ For client side usages it is recommended to use the evolve extension for improved user interface.''' -testedwith = '3.3.3 3.4-rc' -buglink = 'http://bz.selenic.com/' +testedwith = '3.3 3.4-rc' +buglink = 'https://bz.mercurial-scm.org/' import mercurial.obsolete diff -r 8f902ec9ed9a -r c9a79b432907 tests/test-evolve-topic.t --- a/tests/test-evolve-topic.t Mon Sep 12 10:41:00 2016 -0700 +++ b/tests/test-evolve-topic.t Tue Sep 13 01:25:17 2016 +0200 @@ -76,6 +76,8 @@ switching to topic foo 0 files updated, 0 files merged, 4 files removed, 0 files unresolved $ hg topic -l + ### topic: foo (?) + ### branch: default (?) t4@ add fff (current) t3: add eee t2: add ddd diff -r 8f902ec9ed9a -r c9a79b432907 tests/test-evolve.t --- a/tests/test-evolve.t Mon Sep 12 10:41:00 2016 -0700 +++ b/tests/test-evolve.t Tue Sep 13 01:25:17 2016 +0200 @@ -112,13 +112,13 @@ test kill and immutable changeset $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' - 1 public stable + 1 public $ hg prune 1 abort: cannot prune immutable changeset: 7c3bad9141dc (see "hg help phases" for details) [255] $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' - 1 public stable + 1 public test simple kill @@ -598,7 +598,7 @@ (use 'hg resolve' and 'hg graft --continue') [255] $ hg log -r7 --template '{rev}:{node|short} {obsolete}\n' - 7:a5bfd90a2f29 stable + 7:a5bfd90a2f29 $ echo 3 > 1 $ hg resolve -m 1 (no more unresolved files) diff -r 8f902ec9ed9a -r c9a79b432907 tests/test-obsolete-push.t --- a/tests/test-obsolete-push.t Mon Sep 12 10:41:00 2016 -0700 +++ b/tests/test-obsolete-push.t Tue Sep 13 01:25:17 2016 +0200 @@ -6,7 +6,7 @@ > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH - $ template='{rev}:{node|short}@{branch}({obsolete}/{phase}) {desc|firstline}\n' + $ template='{rev}:{node|short}@{branch}({separate("/", obsolete, phase)}) {desc|firstline}\n' $ glog() { > hg glog --template "$template" "$@" > } @@ -29,11 +29,11 @@ 2 changesets pruned 1 new unstable changesets $ glog --hidden - @ 2:244232c2222a@default(unstable/secret) C + @ 2:244232c2222a@default(secret) C | - | x 1:6c81ed0049f8@default(extinct/draft) B + | x 1:6c81ed0049f8@default(obsolete/draft) B |/ - x 0:1994f17a630e@default(suspended/draft) A + x 0:1994f17a630e@default(obsolete/draft) A $ hg init ../clone $ cat > ../clone/.hg/hgrc < --hidden - @ 5:a7a6f2b5d8a5@default(unstable/draft) add d + $ hg --hidden log -G \ + > --template '{rev}:{node|short}@{branch}({separate("/", obsolete, phase)}) {desc|firstline}\n' + @ 5:a7a6f2b5d8a5@default(draft) add d | - | o 4:725c380fe99b@default(stable/draft) add obsol_c' + | o 4:725c380fe99b@default(draft) add obsol_c' | | - x | 3:0d3f46688ccc@default(suspended/draft) add obsol_c + x | 3:0d3f46688ccc@default(obsolete/draft) add obsol_c |/ - | x 2:4538525df7e2@default(extinct/draft) add c + | x 2:4538525df7e2@default(obsolete/draft) add c |/ - o 1:7c3bad9141dc@default(stable/draft) add b + o 1:7c3bad9141dc@default(draft) add b | - o 0:1f0dee641bb7@default(stable/public) add a + o 0:1f0dee641bb7@default(public) add a Test communication of obsolete relation with a compatible client diff -r 8f902ec9ed9a -r c9a79b432907 tests/test-prune.t --- a/tests/test-prune.t Mon Sep 12 10:41:00 2016 -0700 +++ b/tests/test-prune.t Tue Sep 13 01:25:17 2016 +0200 @@ -1,6 +1,6 @@ $ cat >> $HGRCPATH < [ui] - > logtemplate={rev}:{node|short}[{bookmarks}] ({obsolete}/{phase}) {desc|firstline}\n + > logtemplate={rev}:{node|short}[{bookmarks}] ({separate('/', obsolete ,phase)}) {desc|firstline}\n > [extensions] > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH @@ -21,15 +21,15 @@ $ mkcommit e $ hg bookmarks BABAR $ hg log -G - @ 4:9d206ffc875e[BABAR] (stable/draft) add e + @ 4:9d206ffc875e[BABAR] (draft) add e | - o 3:47d2a3944de8[] (stable/draft) add d + o 3:47d2a3944de8[] (draft) add d | - o 2:4538525df7e2[] (stable/draft) add c + o 2:4538525df7e2[] (draft) add c | - o 1:7c3bad9141dc[] (stable/draft) add b + o 1:7c3bad9141dc[] (draft) add b | - o 0:1f0dee641bb7[] (stable/public) add a + o 0:1f0dee641bb7[] (public) add a Check arguments exclusive to each other @@ -109,23 +109,23 @@ $ mkcommit nE $ hg log -G - @ 12:6e8148413dd5[] (stable/draft) add nE + @ 12:6e8148413dd5[] (draft) add nE | - o 11:8ee176ff1d4b[] (stable/draft) add nD + o 11:8ee176ff1d4b[] (draft) add nD | - o 10:aa96dc3f04c2[] (stable/draft) add nC + o 10:aa96dc3f04c2[] (draft) add nC | - o 9:6f6f25e4f748[] (stable/draft) add nB + o 9:6f6f25e4f748[] (draft) add nB | - | o 8:bb5e90a7ea1f[] (stable/draft) add ee + | o 8:bb5e90a7ea1f[] (draft) add ee | | - | o 7:00ded550b1e2[] (stable/draft) add dd + | o 7:00ded550b1e2[] (draft) add dd | | - | o 6:354011cd103f[] (stable/draft) add cc + | o 6:354011cd103f[] (draft) add cc | | - | o 5:814c38b95e72[] (stable/draft) add bb + | o 5:814c38b95e72[] (draft) add bb |/ - o 0:1f0dee641bb7[BABAR] (stable/public) add a + o 0:1f0dee641bb7[BABAR] (public) add a one old, one new @@ -143,21 +143,21 @@ 47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob) bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob) $ hg log -G - @ 12:6e8148413dd5[] (stable/draft) add nE + @ 12:6e8148413dd5[] (draft) add nE | - o 11:8ee176ff1d4b[] (stable/draft) add nD + o 11:8ee176ff1d4b[] (draft) add nD | - o 10:aa96dc3f04c2[] (stable/draft) add nC + o 10:aa96dc3f04c2[] (draft) add nC | - o 9:6f6f25e4f748[] (stable/draft) add nB + o 9:6f6f25e4f748[] (draft) add nB | - | o 7:00ded550b1e2[] (stable/draft) add dd + | o 7:00ded550b1e2[] (draft) add dd | | - | o 6:354011cd103f[] (stable/draft) add cc + | o 6:354011cd103f[] (draft) add cc | | - | o 5:814c38b95e72[] (stable/draft) add bb + | o 5:814c38b95e72[] (draft) add bb |/ - o 0:1f0dee641bb7[BABAR] (stable/public) add a + o 0:1f0dee641bb7[BABAR] (public) add a one old, two new @@ -175,19 +175,19 @@ bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob) 00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'user': 'test'} (glob) $ hg log -G - @ 12:6e8148413dd5[] (stable/draft) add nE + @ 12:6e8148413dd5[] (draft) add nE | - o 11:8ee176ff1d4b[] (stable/draft) add nD + o 11:8ee176ff1d4b[] (draft) add nD | - o 10:aa96dc3f04c2[] (stable/draft) add nC + o 10:aa96dc3f04c2[] (draft) add nC | - o 9:6f6f25e4f748[] (stable/draft) add nB + o 9:6f6f25e4f748[] (draft) add nB | - | o 6:354011cd103f[] (stable/draft) add cc + | o 6:354011cd103f[] (draft) add cc | | - | o 5:814c38b95e72[] (stable/draft) add bb + | o 5:814c38b95e72[] (draft) add bb |/ - o 0:1f0dee641bb7[BABAR] (stable/public) add a + o 0:1f0dee641bb7[BABAR] (public) add a two old, two new (should be denied) @@ -373,56 +373,56 @@ (leaving bookmark rg) $ hg bookmark r10 $ hg log -G - o 15:cd0038e05e1b[rg] (stable/draft) add rg + o 15:cd0038e05e1b[rg] (draft) add rg | - | x 14:43227190fef8[] (extinct/draft) r14 + | x 14:43227190fef8[] (obsolete/draft) r14 | | - | | x 13:b4594d867745[] (extinct/draft) r13 + | | x 13:b4594d867745[] (obsolete/draft) r13 | | | - | | | x 12:e46a4836065c[] (extinct/draft) r12 + | | | x 12:e46a4836065c[] (obsolete/draft) r12 | | |/ - | | o 11:bab5d5bf48bd[] (stable/draft) r11 + | | o 11:bab5d5bf48bd[] (draft) r11 | |/ - +---@ 10:ff43616e5d0f[B r10] (stable/draft) r10 + +---@ 10:ff43616e5d0f[B r10] (draft) r10 | | - o | 8:d62d843c9a01[] (stable/draft) r8 + o | 8:d62d843c9a01[] (draft) r8 | | - o | 7:e7d9710d9fc6[] (stable/draft) r7 + o | 7:e7d9710d9fc6[] (draft) r7 |/ - o 3:2b6d669947cd[] (stable/draft) r3 + o 3:2b6d669947cd[] (draft) r3 |\ - | o 2:fa942426a6fd[] (stable/draft) r2 + | o 2:fa942426a6fd[] (draft) r2 | | - o | 1:66f7d451a68b[] (stable/draft) r1 + o | 1:66f7d451a68b[] (draft) r1 |/ - o 0:1ea73414a91b[] (stable/draft) r0 + o 0:1ea73414a91b[] (draft) r0 $ hg prune 11 1 changesets pruned $ hg log -G - o 15:cd0038e05e1b[rg] (stable/draft) add rg + o 15:cd0038e05e1b[rg] (draft) add rg | - | x 14:43227190fef8[] (extinct/draft) r14 + | x 14:43227190fef8[] (obsolete/draft) r14 | | - | | x 13:b4594d867745[] (extinct/draft) r13 + | | x 13:b4594d867745[] (obsolete/draft) r13 | | | - | | | x 12:e46a4836065c[] (extinct/draft) r12 + | | | x 12:e46a4836065c[] (obsolete/draft) r12 | | |/ - | | x 11:bab5d5bf48bd[] (extinct/draft) r11 + | | x 11:bab5d5bf48bd[] (obsolete/draft) r11 | |/ - +---@ 10:ff43616e5d0f[B r10] (stable/draft) r10 + +---@ 10:ff43616e5d0f[B r10] (draft) r10 | | - o | 8:d62d843c9a01[] (stable/draft) r8 + o | 8:d62d843c9a01[] (draft) r8 | | - o | 7:e7d9710d9fc6[] (stable/draft) r7 + o | 7:e7d9710d9fc6[] (draft) r7 |/ - o 3:2b6d669947cd[] (stable/draft) r3 + o 3:2b6d669947cd[] (draft) r3 |\ - | o 2:fa942426a6fd[] (stable/draft) r2 + | o 2:fa942426a6fd[] (draft) r2 | | - o | 1:66f7d451a68b[] (stable/draft) r1 + o | 1:66f7d451a68b[] (draft) r1 |/ - o 0:1ea73414a91b[] (stable/draft) r0 + o 0:1ea73414a91b[] (draft) r0 $ hg book CELESTE $ hg prune -r . --keep diff -r 8f902ec9ed9a -r c9a79b432907 tests/test-simple4server.t --- a/tests/test-simple4server.t Mon Sep 12 10:41:00 2016 -0700 +++ b/tests/test-simple4server.t Tue Sep 13 01:25:17 2016 +0200 @@ -8,7 +8,9 @@ > [phases] > publish = False > [experimental] - > bundle2-exp=False + > bundle2-exp=False # < Mercurial-4.0 + > [devel] + > legacy.exchange=bundle1 > [extensions] > EOF diff -r 8f902ec9ed9a -r c9a79b432907 tests/test-uncommit.t --- a/tests/test-uncommit.t Mon Sep 12 10:41:00 2016 -0700 +++ b/tests/test-uncommit.t Tue Sep 13 01:25:17 2016 +0200 @@ -5,7 +5,7 @@ $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH $ glog() { - > hg glog --template '{rev}:{node|short}@{branch}({obsolete}/{phase}) {desc|firstline}\n' "$@" + > hg glog --template '{rev}:{node|short}@{branch}({separate("/", obsolete, phase)}) {desc|firstline}\n' "$@" > } $ hg init repo @@ -118,13 +118,13 @@ Add a couple of bookmarks $ glog --hidden - @ 3:5eb72dbe0cb4@bar(stable/draft) touncommit + @ 3:5eb72dbe0cb4@bar(draft) touncommit | - o 2:f63b90038565@default(stable/draft) merge + o 2:f63b90038565@default(draft) merge |\ - | o 1:f15c744d48e8@default(stable/draft) addmore + | o 1:f15c744d48e8@default(draft) addmore | - o 0:07f494440405@default(stable/draft) adda + o 0:07f494440405@default(draft) adda $ hg bookmark -r 2 unrelated $ hg bookmark touncommit-bm @@ -217,15 +217,15 @@ $ hg cat -r . e e $ glog --hidden - @ 4:e8db4aa611f6@bar(stable/draft) touncommit + @ 4:e8db4aa611f6@bar(draft) touncommit | - | x 3:5eb72dbe0cb4@bar(extinct/draft) touncommit + | x 3:5eb72dbe0cb4@bar(obsolete/draft) touncommit |/ - o 2:f63b90038565@default(stable/draft) merge + o 2:f63b90038565@default(draft) merge |\ - | o 1:f15c744d48e8@default(stable/draft) addmore + | o 1:f15c744d48e8@default(draft) addmore | - o 0:07f494440405@default(stable/draft) adda + o 0:07f494440405@default(draft) adda $ hg bookmarks * touncommit-bm 4:e8db4aa611f6 @@ -264,17 +264,17 @@ R m R n $ glog --hidden - @ 5:c706fe2c12f8@bar(stable/draft) touncommit + @ 5:c706fe2c12f8@bar(draft) touncommit | - | o 4:e8db4aa611f6@bar(stable/draft) touncommit + | o 4:e8db4aa611f6@bar(draft) touncommit |/ - | x 3:5eb72dbe0cb4@bar(extinct/draft) touncommit + | x 3:5eb72dbe0cb4@bar(obsolete/draft) touncommit |/ - o 2:f63b90038565@default(stable/draft) merge + o 2:f63b90038565@default(draft) merge |\ - | o 1:f15c744d48e8@default(stable/draft) addmore + | o 1:f15c744d48e8@default(draft) addmore | - o 0:07f494440405@default(stable/draft) adda + o 0:07f494440405@default(draft) adda $ hg debugobsolete 5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'user': 'test'} (glob)