rebase: handle the case when nothing to rebase (dry-run)
authorSushil khanchi <sushilkhanchi97@gmail.com>
Sat, 26 Dec 2020 18:26:32 +0530
changeset 46180 b7ccdb52e0f9
parent 46179 11f3d4458e3a
child 46181 3aec2620554b
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
hgext/rebase.py
tests/test-rebase-inmemory.t
--- 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