Patchwork D8057: rebase: abort if the user tries to rebase the working copy

login
register
mail settings
Submitter phabricator
Date Feb. 3, 2020, 1:49 p.m.
Message ID <2740bc792b2618ac75bc10e9bc295162@localhost.localdomain>
Download mbox | patch
Permalink /patch/44902/
State Not Applicable
Headers show

Comments

phabricator - Feb. 3, 2020, 1:49 p.m.
Closed by commit rHG130e27fcf48f: rebase: abort if the user tries to rebase the working copy (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8057?vs=19804&id=19853

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8057/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8057

AFFECTED FILES
  hgext/rebase.py
  tests/test-rebase-parameters.t

CHANGE DETAILS




To: martinvonz, #hg-reviewers, pulkit
Cc: pulkit, mercurial-devel

Patch

diff --git a/tests/test-rebase-parameters.t b/tests/test-rebase-parameters.t
--- a/tests/test-rebase-parameters.t
+++ b/tests/test-rebase-parameters.t
@@ -93,11 +93,12 @@ 
   [1]
 
   $ hg rebase --rev 'wdir()' --dest 6
-  abort: working directory revision cannot be specified
+  abort: cannot rebase the working copy
   [255]
 
-  $ hg rebase --source 'wdir()' --dest 6 2>&1 | grep assert
-      assert rebaseset
+  $ hg rebase --source 'wdir()' --dest 6
+  abort: cannot rebase the working copy
+  [255]
 
   $ hg rebase --source '1 & !1' --dest 8
   empty "source" revision set - nothing to rebase
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -37,6 +37,7 @@ 
     hg,
     merge as mergemod,
     mergeutil,
+    node as nodemod,
     obsolete,
     obsutil,
     patch,
@@ -1265,8 +1266,7 @@ 
         if not src:
             ui.status(_(b'empty "source" revision set - nothing to rebase\n'))
             return None
-        rebaseset = repo.revs(b'(%ld)::', src)
-        assert rebaseset
+        rebaseset = repo.revs(b'(%ld)::', src) or src
     else:
         base = scmutil.revrange(repo, [basef or b'.'])
         if not base:
@@ -1341,6 +1341,8 @@ 
                 )
             return None
 
+    if nodemod.wdirrev in rebaseset:
+        raise error.Abort(_(b'cannot rebase the working copy'))
     rebasingwcp = repo[b'.'].rev() in rebaseset
     ui.log(
         b"rebase",