##// END OF EJS Templates
mq: fix qpush recursion in _findtags when status file is wrong (issue2664)...
Matt Mackall -
r13508:0396ca80 stable
parent child Browse files
Show More
@@ -2957,7 +2957,9 b' def reposetup(ui, repo):'
2957 2957
2958 2958 mqtags = [(patch.node, patch.name) for patch in q.applied]
2959 2959
2960 if mqtags[-1][0] not in self:
2960 try:
2961 r = self.changelog.rev(mqtags[-1][0])
2962 except error.RepoLookupError:
2961 2963 self.ui.warn(_('mq status file refers to unknown node %s\n')
2962 2964 % short(mqtags[-1][0]))
2963 2965 return result
@@ -2982,12 +2984,13 b' def reposetup(ui, repo):'
2982 2984
2983 2985 cl = self.changelog
2984 2986 qbasenode = q.applied[0].node
2985 if qbasenode not in self:
2987 try:
2988 qbase = cl.rev(qbasenode)
2989 except error.LookupError:
2986 2990 self.ui.warn(_('mq status file refers to unknown node %s\n')
2987 2991 % short(qbasenode))
2988 2992 return super(mqrepo, self)._branchtags(partial, lrev)
2989 2993
2990 qbase = cl.rev(qbasenode)
2991 2994 start = lrev + 1
2992 2995 if start < qbase:
2993 2996 # update the cache (excluding the patches) and save it
@@ -51,6 +51,22 b' test qpush on empty series'
51 51 summary: add foo
52 52
53 53
54 test corrupt status file
55 $ hg qpush
56 applying patch1
57 now at: patch1
58 $ cp .hg/patches/status .hg/patches/status.orig
59 $ hg qpop
60 popping patch1
61 patch queue now empty
62 $ cp .hg/patches/status.orig .hg/patches/status
63 $ hg qpush
64 mq status file refers to unknown node * (glob)
65 abort: working directory revision is not qtip
66 [255]
67 $ rm .hg/patches/status .hg/patches/status.orig
68
69
54 70 bar should be gone; other unknown/ignored files should still be around
55 71
56 72 $ hg status -A
General Comments 0
You need to be logged in to leave comments. Login now