diff --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -880,12 +880,10 @@ 'operation') raise error.Abort(msg, hint=hint) elif abortf: - msg = _('could not read shelved state file, your working copy ' - 'may be in an unexpected state\nplease update to some ' - 'commit\n') - ui.warn(msg) shelvedstate.clear(repo) - return + raise error.Abort(_('could not read shelved state file, your ' + 'working copy may be in an unexpected state\n' + 'please update to some commit\n')) if abortf: return unshelveabort(ui, repo, state, opts) diff --git a/tests/test-shelve2.t b/tests/test-shelve2.t --- a/tests/test-shelve2.t +++ b/tests/test-shelve2.t @@ -696,8 +696,10 @@ Unshelve --abort works with a corrupted shelvedstate $ hg unshelve --abort - could not read shelved state file, your working copy may be in an unexpected state + abort: could not read shelved state file, your working copy may be in an unexpected state please update to some commit + + [255] Unshelve --abort fails with appropriate message if there's no unshelve in progress