Patchwork [5,of,5,v2] rebase: abort hg pull --rebase if rebase.requiredest is set (issue5514)

login
register
mail settings
Submitter Ryan McElroy
Date March 30, 2017, 10:50 a.m.
Message ID <982ea504f855ed143d71.1490871037@devbig314.prn1.facebook.com>
Download mbox | patch
Permalink /patch/19844/
State Accepted
Headers show

Comments

Ryan McElroy - March 30, 2017, 10:50 a.m.
# HG changeset patch
# User Ryan McElroy <rmcelroy@fb.com>
# Date 1490871010 25200
#      Thu Mar 30 03:50:10 2017 -0700
# Node ID 982ea504f855ed143d714e2923332e223b7feef4
# Parent  2b8f2a54323459455a1038ca3b5a98a03cf4fe0e
rebase: abort hg pull --rebase if rebase.requiredest is set (issue5514)

Previously, the pull would succeed, but the subsequent rebase would fail due
to the rebase.requiredest flag. Now abort earlier with a more useful error
message.

Patch

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1362,6 +1362,11 @@  def pullrebase(orig, ui, repo, *args, **
     'Call rebase after pull if the latter has been invoked with --rebase'
     ret = None
     if opts.get('rebase'):
+        if ui.configbool('commands', 'rebase.requiredest'):
+            msg = _('rebase destination required by configuration')
+            hint = _('use hg pull followed by hg rebase -d DEST')
+            raise error.Abort(msg, hint=hint)
+
         wlock = lock = None
         try:
             wlock = repo.wlock()
diff --git a/tests/test-rebase-dest.t b/tests/test-rebase-dest.t
--- a/tests/test-rebase-dest.t
+++ b/tests/test-rebase-dest.t
@@ -72,13 +72,7 @@  Check rebase.requiredest interaction wit
   $ echo f > f
   $ hg commit -qAm ff
   $ hg pull --rebase
-  pulling from $TESTTMP/repo
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 2 changes to 2 files (+1 heads)
-  abort: you must specify a destination
-  (use: hg rebase -d REV)
+  abort: rebase destination required by configuration
+  (use hg pull followed by hg rebase -d DEST)
   [255]