Mercurial > evolve
changeset 5914:e8cc899a085a
next: add an --abort flag
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 15 May 2021 02:59:11 +0800 |
parents | e682bbe66e37 |
children | 6bc94d126520 |
files | hgext3rd/evolve/__init__.py tests/test-prev-next.t |
diffstat | 2 files changed, 65 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/evolve/__init__.py Sat May 15 02:58:04 2021 +0800 +++ b/hgext3rd/evolve/__init__.py Sat May 15 02:59:11 2021 +0800 @@ -819,7 +819,8 @@ (b'', b'evolve', True, _(b'evolve the next changeset if necessary')), (b'', b'no-topic', False, _(b'ignore topic and move topologically')), (b'n', b'dry-run', False, - _(b'do not perform actions, just print what would be done'))], + _(b'do not perform actions, just print what would be done')), + (b'', b'abort', False, _(b'abort the interrupted next'))], b'[OPTION]...', helpbasic=True, **compat.helpcategorykwargs('CATEGORY_WORKING_DIRECTORY')) @@ -833,6 +834,26 @@ """ wlock = None dryrunopt = opts['dry_run'] + abortopt = opts['abort'] + + compat.check_incompatible_arguments(opts, 'abort', ['move_bookmark', 'merge']) + if abortopt: + evolvestate = state.cmdstate(repo) + if not evolvestate: + raise error.Abort(_(b'no interrupted next to abort')) + + evolvestate.load() + if evolvestate[b'command'] != b'next': + raise error.Abort(_(b'no interrupted next to abort')) + + pctx = repo[b'.'] + compat.clean_update(pctx) + ui.status(_(b'next aborted\n')) + ui.status(_(b'working directory is now at %s\n') + % ui.label(bytes(pctx), b'evolve.node')) + evolvestate.delete() + return 0 + if not dryrunopt: wlock = repo.wlock() try:
--- a/tests/test-prev-next.t Sat May 15 02:58:04 2021 +0800 +++ b/tests/test-prev-next.t Sat May 15 02:59:11 2021 +0800 @@ -608,3 +608,46 @@ move:[4] B atop:[5] B modified working directory is now at 1b434459c7e7 + + $ cd .. + +hg next --abort + + $ hg init next-abort + $ cd next-abort + + $ echo apple > a + $ hg ci -qAm apple + $ echo banana > b + $ hg ci -qAm banana + $ hg up 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo blueberry > b + $ hg ci -qAm 'apple and blueberry' --amend + 1 new orphan changesets + + $ hg next + move:[1] banana + atop:[2] apple and blueberry + merging b + warning: conflicts while merging b! (edit, then use 'hg resolve --mark') + unresolved merge conflicts + (see 'hg help evolve.interrupted') + [240] + + $ hg next --abort + next aborted + working directory is now at 1c7f51cf0ef0 + $ hg next --abort + abort: no interrupted next to abort + [255] + $ hg evolve --abort + abort: no interrupted evolve to abort + [255] + + $ hg next --abort --move-bookmark + abort: cannot specify both --abort and --move-bookmark + [10] + $ hg next --abort --merge + abort: cannot specify both --abort and --merge + [10]