rebase: abort cleanly when we encounter a damaged rebasestate (
issue4155)
--- a/hgext/rebase.py Thu Jan 30 17:09:13 2014 +0900
+++ b/hgext/rebase.py Thu Jan 30 13:56:56 2014 -0600
@@ -658,6 +658,7 @@
def restorestatus(repo):
'Restore a previously stored status'
try:
+ keepbranches = None
target = None
collapse = False
external = nullrev
@@ -687,6 +688,10 @@
state[repo[oldrev].rev()] = int(newrev)
else:
state[repo[oldrev].rev()] = repo[newrev].rev()
+
+ if keepbranches is None:
+ raise util.Abort(_('.hg/rebasestate is incomplete'))
+
skipped = set()
# recompute the set of skipped revs
if not collapse:
--- a/tests/test-rebase-abort.t Thu Jan 30 17:09:13 2014 +0900
+++ b/tests/test-rebase-abort.t Thu Jan 30 13:56:56 2014 -0600
@@ -13,6 +13,16 @@
$ hg init a
$ cd a
+ $ touch .hg/rebasestate
+ $ hg sum
+ parent: -1:000000000000 tip (empty repository)
+ branch: default
+ commit: (clean)
+ update: (current)
+ abort: .hg/rebasestate is incomplete
+ [255]
+ $ rm .hg/rebasestate
+
$ echo c1 > common
$ hg add common
$ hg ci -m C1