# HG changeset patch # User timeless@mozdev.org # Date 1441916690 14400 # Node ID b4dfafda72c2b54a7f8084d1e84819440bd1f243 # Parent c936a243346a3b70b25007aa1e303e7a74c7b7a9 next: add support for --dry-run also adds support to prev diff -r c936a243346a -r b4dfafda72c2 hgext/evolve.py --- a/hgext/evolve.py Wed Sep 09 22:25:37 2015 -0400 +++ b/hgext/evolve.py Thu Sep 10 16:24:50 2015 -0400 @@ -1988,12 +1988,14 @@ @command('^previous', [('B', 'move-bookmark', False, _('move active bookmark after update')), - ('', 'merge', False, _('bring uncommitted change along'))], - '[-B]') + ('', 'merge', False, _('bring uncommitted change along')), + ('n', 'dry-run', False, _('do not perform actions, just print what would be done'))], + '[OPTION]...') def cmdprevious(ui, repo, **opts): """update to parent and display summary lines""" wkctx = repo[None] wparents = wkctx.parents() + dryrunopt = opts['dry_run'] if len(wparents) != 1: raise util.Abort('merge in progress') if not opts['merge']: @@ -2009,13 +2011,18 @@ p = parents[0] bm = bmactive(repo) shouldmove = opts.get('move_bookmark') and bm is not None - ret = hg.update(repo, p.rev()) - if not ret: + if dryrunopt: + ui.write('hg update %s;\n' % p.rev()) if shouldmove: - repo._bookmarks[bm] = p.node() - repo._bookmarks.write() - else: - bmdeactivate(repo) + ui.write('hg bookmark %s -r %s;\n' % (bm, p.rev())) + else: + ret = hg.update(repo, p.rev()) + if not ret: + if shouldmove: + repo._bookmarks[bm] = p.node() + repo._bookmarks.write() + else: + bmdeactivate(repo) displayer.show(p) return 0 else: @@ -2028,8 +2035,9 @@ [('B', 'move-bookmark', False, _('move active bookmark after update')), ('', 'merge', False, _('bring uncommitted change along')), - ('', 'evolve', False, _('evolve the next changeset if necessary'))], - '[-B]') + ('', 'evolve', False, _('evolve the next changeset if necessary')), + ('n', 'dry-run', False, _('do not perform actions, just print what would be done'))], + '[OPTION]...') def cmdnext(ui, repo, **opts): """update to next child @@ -2038,6 +2046,7 @@ The summary line of the destination is displayed for clarity""" wkctx = repo[None] wparents = wkctx.parents() + dryrunopt = opts['dry_run'] if len(wparents) != 1: raise util.Abort('merge in progress') if not opts['merge']: @@ -2053,13 +2062,18 @@ c = children[0] bm = bmactive(repo) shouldmove = opts.get('move_bookmark') and bm is not None - ret = hg.update(repo, c.rev()) - if not ret: + if dryrunopt: + ui.write('hg update %s;\n' % c.rev()) if shouldmove: - repo._bookmarks[bm] = c.node() - repo._bookmarks.write() - else: - bmdeactivate(repo) + ui.write('hg bookmark %s -r %s;\n' % (bm, c.rev())) + else: + ret = hg.update(repo, c.rev()) + if not ret: + if shouldmove: + repo._bookmarks[bm] = c.node() + repo._bookmarks.write() + else: + bmdeactivate(repo) displayer.show(c) result = 0 elif children: @@ -2085,7 +2099,7 @@ return 1 else: cmdutil.bailifchanged(repo) - result = _solveone(ui, repo, repo[aspchildren[0]], False, + result = _solveone(ui, repo, repo[aspchildren[0]], dryrunopt, False, lambda:None, category='unstable') if not result: ui.status(_('working directory now at %s\n') % repo['.']) diff -r c936a243346a -r b4dfafda72c2 tests/test-prev-next.t --- a/tests/test-prev-next.t Wed Sep 09 22:25:37 2015 -0400 +++ b/tests/test-prev-next.t Thu Sep 10 16:24:50 2015 -0400 @@ -22,6 +22,10 @@ * mark 0:a154386e50d1 hg next -B should move active bookmark + $ hg next -B --dry-run + hg update 1; + hg bookmark mark -r 1; + [1] added b $ hg next -B 1 files updated, 0 files merged, 0 files removed, 0 files unresolved [1] added b @@ -29,6 +33,9 @@ * mark 1:6e742c9127b3 hg prev should unset active bookmark + $ hg prev --dry-run + hg update 0; + [0] added a $ hg prev 0 files updated, 0 files merged, 1 files removed, 0 files unresolved [0] added a @@ -152,6 +159,11 @@ no children (1 unstable changesets to be evolved here, do you want --evolve?) [1] + $ hg next --evolve --dry-run + move:[2] added c + atop:[3] added b (2) + hg rebase -r 4e26ef31f919 -d 9ad178109a19 + working directory now at 9ad178109a19 $ hg next --evolve move:[2] added c atop:[3] added b (2)