# HG changeset patch # User Matt Harbison # Date 1527961484 14400 # Node ID 79c54e7c0c5279b315e43540b98fb22c4843d79b # Parent 712d6f535fc9826d43213c5aedbd13f7892c40a0 rebase: prioritize indicating an interrupted rebase over update (issue5838) This should also cover the transplant extension, and any other non clearable states. diff -r 712d6f535fc9 -r 79c54e7c0c52 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Sat Jun 02 13:25:45 2018 -0400 +++ b/mercurial/cmdutil.py Sat Jun 02 13:44:44 2018 -0400 @@ -3208,8 +3208,16 @@ if found. It's probably good to check this right before bailifchanged(). ''' + # Check for non-clearable states first, so things like rebase will take + # precedence over update. for f, clearable, allowcommit, msg, hint in unfinishedstates: - if commit and allowcommit: + if clearable or (commit and allowcommit): + continue + if repo.vfs.exists(f): + raise error.Abort(msg, hint=hint) + + for f, clearable, allowcommit, msg, hint in unfinishedstates: + if not clearable or (commit and allowcommit): continue if repo.vfs.exists(f): raise error.Abort(msg, hint=hint) diff -r 712d6f535fc9 -r 79c54e7c0c52 tests/test-rebase-abort.t --- a/tests/test-rebase-abort.t Sat Jun 02 13:25:45 2018 -0400 +++ b/tests/test-rebase-abort.t Sat Jun 02 13:44:44 2018 -0400 @@ -387,10 +387,9 @@ .hg/undo.dirstate .hg/updatestate -XXX: This should complain about needing to abort/continue rebase $ hg rebase -s 3 -d tip - abort: last update was interrupted - (use 'hg update' to get a consistent checkout) + abort: rebase in progress + (use 'hg rebase --continue' or 'hg rebase --abort') [255] $ hg up . abort: rebase in progress @@ -401,10 +400,9 @@ (use 'hg rebase --continue' or 'hg rebase --abort') [255] -XXX: This should complain about needing to abort/continue rebase $ hg graft 3 - abort: last update was interrupted - (use 'hg update' to get a consistent checkout) + abort: rebase in progress + (use 'hg rebase --continue' or 'hg rebase --abort') [255] $ hg rebase --abort