diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -1757,9 +1757,9 @@ class queue(object): for i in xrange(start, len(self.series)): p, reason = self.pushable(i) if p: - break + return i self.explainpushable(i) - return i + return len(self.series) if self.applied: p = self.applied[-1].name try: @@ -2205,7 +2205,7 @@ def top(ui, repo, **opts): @command("qnext", seriesopts, _('hg qnext [-s]')) def next(ui, repo, **opts): - """print the name of the next patch + """print the name of the next pushable patch Returns 0 on success.""" q = repo.mq diff --git a/tests/test-mq-guards.t b/tests/test-mq-guards.t --- a/tests/test-mq-guards.t +++ b/tests/test-mq-guards.t @@ -107,6 +107,9 @@ should skip c.patch applying b.patch skipping c.patch - guarded by '-a' now at: b.patch + $ hg qnext + all patches applied + [1] should display b.patch diff --git a/tests/test-mq.t b/tests/test-mq.t --- a/tests/test-mq.t +++ b/tests/test-mq.t @@ -72,7 +72,7 @@ help qheader print the header of the topmost or specified patch qimport import a patch qnew create a new patch - qnext print the name of the next patch + qnext print the name of the next pushable patch qpop pop the current patch off the stack qprev print the name of the previous patch qpush push the next patch onto the stack