Bug 5044 - rebase AssertionError from command line
Summary: rebase AssertionError from command line
Status: RESOLVED FIXED
Alias: None
Product: Mercurial
Classification: Unclassified
Component: rebase (show other bugs)
Version: stable branch
Hardware: PC Linux
: urgent bug
Assignee: Bugzilla
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2016-01-17 12:36 UTC by kiilerix
Modified: 2016-02-09 00:00 UTC (History)
2 users (show)

See Also:
Python Version: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kiilerix 2016-01-17 12:36 UTC
--- a/tests/test-rebase-parameters.t
+++ b/tests/test-rebase-parameters.t
@@ -412,6 +412,47 @@ Specify only revs (from 2 onto 8)
   
   $ cd ..
 
+Assertion error
+
+  $ hg clone -q -u . a aX
+  $ cd aX
+  $ hg rebase -r 3 -r 6
+  rebasing 3:32af7686d403 "D"
+  rebasing 6:eea13746799a "G"
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 2.7.10 (default, Sep  8 2015, 17:20:17) [GCC 5.1.1 20150618 (Red Hat 5.1.1-4)]
+  ** Mercurial Distributed SCM (version +0-)
+  ** Extensions loaded: rebase
+  Traceback (most recent call last):
+    File "/home/madski/hg/hg", line 43, in <module>
+      mercurial.dispatch.run()
+    File "/home/madski/hg/mercurial/dispatch.py", line 54, in run
+      sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
+    File "/home/madski/hg/mercurial/dispatch.py", line 116, in dispatch
+      ret = _runcatch(req)
+    File "/home/madski/hg/mercurial/dispatch.py", line 187, in _runcatch
+      return _dispatch(req)
+    File "/home/madski/hg/mercurial/dispatch.py", line 920, in _dispatch
+      cmdpats, cmdoptions)
+    File "/home/madski/hg/mercurial/dispatch.py", line 679, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/home/madski/hg/mercurial/dispatch.py", line 1051, in _runcommand
+      return checkargs()
+    File "/home/madski/hg/mercurial/dispatch.py", line 1011, in checkargs
+      return cmdfunc()
+    File "/home/madski/hg/mercurial/dispatch.py", line 917, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
+    File "/home/madski/hg/mercurial/util.py", line 801, in check
+      return func(*args, **kwargs)
+    File "/home/madski/hg/hgext/rebase.py", line 434, in rebase
+      targetancestors)
+    File "/home/madski/hg/hgext/rebase.py", line 752, in defineparents
+      raise AssertionError('no base found to rebase on '
+  AssertionError: no base found to rebase on (defineparents called wrong)
+  [1]
+  $ cd ..
+
 Test --tool parameter:

This case passed before 
ad9db007656f  2013-10-30  stable  pierre-yves.david  "rebase: fix selection of base used when rebasing merge (issue4041)"
introduced UnboundLocalError which was fixed in
9155257e6330  2014-02-14  default  simohe  "rebase: do not raise an UnboundLocalError when called wrong (issue4106)"
(without test coverage) - and then this case failed.
Comment 1 Pierre-Yves David 2016-01-17 12:57 UTC
Looks like a (2 years old) regression.
Comment 2 Bugzilla 2016-01-28 00:00 UTC
Bug marked urgent for 10 days, bumping
Comment 3 HG Bot 2016-02-01 17:30 UTC
Fixed by https://selenic.com/repo/hg/rev/07a5de79ec30
Martijn Pieters <mj@zopatista.com>
rebase: better way to detect non-detaching revisions (issue5044)

Rather than look for the lowest revision, see if the rebase state is tracking
the parents of this revision. Otherwise we can't handle multiple revisions in
one rebase that includes a merge revision.

Fixes issue5044.

(please test the fix)
Comment 4 Bugzilla 2016-02-09 00:00 UTC
Bug was set to TESTING for 7 days, resolving