# HG changeset patch # User Pierre-Yves David # Date 1516985716 -3600 # Node ID b03d955e391eb78277cee804f748c9b702505c20 # Parent 56277182c0295505d2122f70395857c94040c3a1# Parent f7ecb11d71bb2cafcc0f137d1a07125d7a475bd1 branching: merge with stable diff -r 56277182c029 -r b03d955e391e CHANGELOG --- a/CHANGELOG Thu Jan 25 17:29:21 2018 -0800 +++ b/CHANGELOG Fri Jan 26 17:55:16 2018 +0100 @@ -7,6 +7,12 @@ * grab: new command to grab a changeset, put in on wdir parent and update to it +7.2.2 -- (in-progress) +---------------------- + + * fold: fix issue related to bookmarks movement (issue5772) + * amend: take lock before parsing the commit description (issue5266) + 7.2.1 --2018-01-20 ------------------- diff -r 56277182c029 -r b03d955e391e hgext3rd/evolve/__init__.py --- a/hgext3rd/evolve/__init__.py Thu Jan 25 17:29:21 2018 -0800 +++ b/hgext3rd/evolve/__init__.py Fri Jan 26 17:55:16 2018 +0100 @@ -696,7 +696,8 @@ ui.warn(msg % shortnode) # Check that evolve is activated for performance reasons - if ui.quiet or not obsolete.isenabled(repo, commandopt): + evolvecommandenabled = any('evolve' in e for e in cmdtable) + if ui.quiet or not evolvecommandenabled: return # Show a warning for helping the user to solve the issue diff -r 56277182c029 -r b03d955e391e hgext3rd/evolve/cmdrewrite.py --- a/hgext3rd/evolve/cmdrewrite.py Thu Jan 25 17:29:21 2018 -0800 +++ b/hgext3rd/evolve/cmdrewrite.py Fri Jan 26 17:55:16 2018 +0100 @@ -128,13 +128,13 @@ edit = opts.pop('edit', False) log = opts.get('logfile') opts['amend'] = True - if not (edit or opts['message'] or log): - opts['message'] = repo['.'].description() _resolveoptions(ui, opts) _alias, commitcmd = cmdutil.findcmd('commit', commands.table) try: wlock = repo.wlock() lock = repo.lock() + if not (edit or opts['message'] or log): + opts['message'] = repo['.'].description() rewriteutil.precheck(repo, [repo['.'].rev()], action='amend') return commitcmd[0](ui, repo, *pats, **opts) finally: @@ -613,6 +613,11 @@ phases.retractboundary(repo, tr, targetphase, [newid]) obsolete.createmarkers(repo, [(ctx, (repo[newid],)) for ctx in allctx], metadata=metadata) + # move bookmarks from old nodes to the new one + # XXX: we should make rewriteutil.rewrite() handle such cases + for ctx in allctx: + bmupdater = rewriteutil.bookmarksupdater(repo, ctx.node(), tr) + bmupdater(newid) tr.close() finally: tr.release() diff -r 56277182c029 -r b03d955e391e tests/test-evolve.t --- a/tests/test-evolve.t Thu Jan 25 17:29:21 2018 -0800 +++ b/tests/test-evolve.t Fri Jan 26 17:55:16 2018 +0100 @@ -1250,6 +1250,24 @@ (use 'hg help' for the full list of commands or 'hg -v' for details) [255] +Shows "use 'hg evolve' to..." hints iff the evolve command is enabled + + $ hg --hidden up 14 + updating to a hidden changeset 484fb3cfa7f2 + (hidden revision '484fb3cfa7f2' was rewritten as: 98e171e2f272) + 2 files updated, 0 files merged, 1 files removed, 0 files unresolved + working directory parent is obsolete! (484fb3cfa7f2) + $ cat >> $HGRCPATH < [experimental] + > evolutioncommands=evolve + > EOF + $ hg --hidden up 15 + updating to a hidden changeset daa1ff1c7fbd + (hidden revision 'daa1ff1c7fbd' was rewritten as: 0c049e4e5422) + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + working directory parent is obsolete! (daa1ff1c7fbd) + (use 'hg evolve' to update to its successor: 0c049e4e5422) + Restore all of the evolution features $ cat >> $HGRCPATH < [extensions] > evolve= > [ui] - > logtemplate = '{rev} - {node|short} {desc|firstline} [{author}] ({phase})\n' + > logtemplate = '{rev} - {node|short} {desc|firstline} [{author}] ({phase}) {bookmarks}\n' > EOF $ hg init fold-tests @@ -16,6 +16,7 @@ $ hg debugbuilddag .+3:branchpoint+4*branchpoint+2 $ hg up 'desc("r7")' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg bookmark bm1 $ hg log -G o 10 - a8407f9a3dc1 r10 [debugbuilddag] (draft) | @@ -23,7 +24,7 @@ | o 8 - abf57d94268b r8 [debugbuilddag] (draft) | - | @ 7 - 4de32a90b66c r7 [debugbuilddag] (draft) + | @ 7 - 4de32a90b66c r7 [debugbuilddag] (draft) bm1 | | | o 6 - f69452c5b1af r6 [debugbuilddag] (draft) | | @@ -87,6 +88,27 @@ 3 changesets folded 0 files updated, 0 files merged, 0 files removed, 0 files unresolved +Checking whether the bookmarks are moved or not + + $ hg log -G + @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft) bm1 + | + | o 10 - a8407f9a3dc1 r10 [debugbuilddag] (draft) + | | + | o 9 - 529dfc5bb875 r9 [debugbuilddag] (draft) + | | + | o 8 - abf57d94268b r8 [debugbuilddag] (draft) + | | + o | 4 - bebd167eb94d r4 [debugbuilddag] (draft) + |/ + o 3 - 2dc09a01254d r3 [debugbuilddag] (draft) + | + o 2 - 01241442b3c2 r2 [debugbuilddag] (draft) + | + o 1 - 66f7d451a68b r1 [debugbuilddag] (draft) + | + o 0 - 1ea73414a91b r0 [debugbuilddag] (public) + (test inherited from test-evolve.t) $ hg fold --from 6 # want to run hg fold 6 @@ -95,7 +117,7 @@ [255] $ hg log -G - @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft) + @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft) bm1 | | o 10 - a8407f9a3dc1 r10 [debugbuilddag] (draft) | | @@ -124,7 +146,7 @@ $ hg log -G o 12 - b568edbee6e0 r8 [debugbuilddag] (draft) | - | @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft) + | @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft) bm1 | | | o 4 - bebd167eb94d r4 [debugbuilddag] (draft) |/ @@ -144,8 +166,9 @@ $ hg commit '-m r11' $ hg up '.^' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + (leaving bookmark bm1) $ hg log -G - o 13 - 14d0e0da8e91 r11 [test] (draft) + o 13 - 14d0e0da8e91 r11 [test] (draft) bm1 | | o 12 - b568edbee6e0 r8 [debugbuilddag] (draft) | | @@ -190,7 +213,7 @@ 2 changesets folded 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -G - @ 14 - 29b470a33594 r5 [Victor Rataxes ] (draft) + @ 14 - 29b470a33594 r5 [Victor Rataxes ] (draft) bm1 | | o 12 - b568edbee6e0 r8 [debugbuilddag] (draft) | | @@ -209,7 +232,7 @@ 2 changesets folded 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -G - @ 15 - 91880abed0f2 r4 [test] (draft) + @ 15 - 91880abed0f2 r4 [test] (draft) bm1 | | o 12 - b568edbee6e0 r8 [debugbuilddag] (draft) |/