Mercurial > hg-stable
changeset 46272:a68d3386138c
shelve: raise more specific errors
Differential Revision: https://phab.mercurial-scm.org/D9699
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 07 Jan 2021 12:26:32 -0800 |
parents | b2a8ff736ecf |
children | efc71bb71682 |
files | mercurial/shelve.py tests/test-shelve.t tests/test-shelve2.t |
diffstat | 3 files changed, 23 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/shelve.py Thu Jan 07 12:58:43 2021 -0800 +++ b/mercurial/shelve.py Thu Jan 07 12:26:32 2021 -0800 @@ -592,11 +592,13 @@ def deletecmd(ui, repo, pats): """subcommand that deletes a specific shelve""" if not pats: - raise error.Abort(_(b'no shelved changes specified!')) + raise error.InputError(_(b'no shelved changes specified!')) with repo.wlock(): for name in pats: if not shelvedfile(repo, name, patchextension).exists(): - raise error.Abort(_(b"shelved change '%s' not found") % name) + raise error.InputError( + _(b"shelved change '%s' not found") % name + ) for suffix in shelvefileextensions: shfile = shelvedfile(repo, name, suffix) if shfile.exists(): @@ -1066,12 +1068,14 @@ shelved.append(opts[b"name"]) if interactive and opts.get(b'keep'): - raise error.Abort(_(b'--keep on --interactive is not yet supported')) + raise error.InputError( + _(b'--keep on --interactive is not yet supported') + ) if abortf or continuef: if abortf and continuef: - raise error.Abort(_(b'cannot use both abort and continue')) + raise error.InputError(_(b'cannot use both abort and continue')) if shelved: - raise error.Abort( + raise error.InputError( _( b'cannot combine abort/continue with ' b'naming a shelved change' @@ -1084,22 +1088,24 @@ if abortf: return unshelveabort(ui, repo, state) elif continuef and interactive: - raise error.Abort(_(b'cannot use both continue and interactive')) + raise error.InputError( + _(b'cannot use both continue and interactive') + ) elif continuef: return unshelvecontinue(ui, repo, state, opts) elif len(shelved) > 1: - raise error.Abort(_(b'can only unshelve one change at a time')) + raise error.InputError(_(b'can only unshelve one change at a time')) elif not shelved: shelved = listshelves(repo) if not shelved: - raise error.Abort(_(b'no shelved changes to apply!')) + raise error.StateError(_(b'no shelved changes to apply!')) basename = util.split(shelved[0][1])[1] ui.status(_(b"unshelving change '%s'\n") % basename) else: basename = shelved[0] if not shelvedfile(repo, basename, patchextension).exists(): - raise error.Abort(_(b"shelved change '%s' not found") % basename) + raise error.InputError(_(b"shelved change '%s' not found") % basename) return _dounshelve(ui, repo, basename, opts)
--- a/tests/test-shelve.t Thu Jan 07 12:58:43 2021 -0800 +++ b/tests/test-shelve.t Thu Jan 07 12:26:32 2021 -0800 @@ -278,10 +278,10 @@ $ hg unshelve abort: no shelved changes to apply! - [255] + [20] $ hg unshelve foo abort: shelved change 'foo' not found - [255] + [10] named shelves, specific filenames, and "commit messages" should all work (this tests also that editor is invoked, if '--edit' is specified) @@ -979,7 +979,7 @@ default (*s ago) changes to: create conflict (glob) $ hg shelve --delete doesnotexist abort: shelved change 'doesnotexist' not found - [255] + [10] $ hg shelve --delete default $ cd .. @@ -1408,7 +1408,7 @@ -- using --continue with --interactive should throw an error $ hg unshelve --continue -i abort: cannot use both continue and interactive - [255] + [10] $ cat bar1 A @@ -1511,7 +1511,7 @@ -- test for --interactive --keep $ hg unshelve -i --keep abort: --keep on --interactive is not yet supported - [255] + [10] $ hg update -q --clean .
--- a/tests/test-shelve2.t Thu Jan 07 12:58:43 2021 -0800 +++ b/tests/test-shelve2.t Thu Jan 07 12:26:32 2021 -0800 @@ -769,10 +769,10 @@ $ hg shelve -l $ hg unshelve abort: no shelved changes to apply! - [255] + [20] $ hg shelve -d junk2 abort: shelved change 'junk2' not found - [255] + [10] $ find .hg/shelve* | sort .hg/shelve-backup .hg/shelve-backup/junk1.patch @@ -787,7 +787,7 @@ ValueError: * (glob) $ hg shelve -d junk3 abort: shelved change 'junk3' not found - [255] + [10] $ find .hg/shelve* | sort .hg/shelve-backup .hg/shelve-backup/junk1.patch