rebase: handle the case when nothing to rebase (dry-run)
In dry-run mode, even when there was no rebase in progress it tried
to abort (for context, at the end of dry-run mode we abort the in-memory
performed rebase) because we were not early checking if there was any rebase
started.
Changes in test file reflect the fixed behavior.
Differential Revision: https://phab.mercurial-scm.org/D9659
--- a/hgext/rebase.py Sat Dec 26 18:04:30 2020 +0530
+++ b/hgext/rebase.py Sat Dec 26 18:26:32 2020 +0530
@@ -1139,13 +1139,16 @@
try:
overrides = {(b'rebase', b'singletransaction'): True}
with ui.configoverride(overrides, b'rebase'):
- _origrebase(
+ res = _origrebase(
ui,
repo,
action,
opts,
rbsrt,
)
+ if res == _nothingtorebase():
+ needsabort = False
+ return res
except error.ConflictResolutionRequired:
ui.status(_(b'hit a merge conflict\n'))
return 1
--- a/tests/test-rebase-inmemory.t Sat Dec 26 18:04:30 2020 +0530
+++ b/tests/test-rebase-inmemory.t Sat Dec 26 18:26:32 2020 +0530
@@ -342,9 +342,7 @@
$ hg reb -r . -d '.^' -n
starting dry-run rebase; repository will not be changed
nothing to rebase
- dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
- abort: no rebase in progress
- [20]
+ [1]
Check dryrun gives correct results when there is no conflict in rebasing
$ hg rebase -s 2 -d 6 -n