# HG changeset patch # User Patrick Mezard # Date 1328294829 -3600 # Node ID 7e5a281a082cdbff4ae9553e01b5ff36dc2c11ee # Parent c36db39b3fee5dbdea15d92ad5d62657524ea447 mq: make qprev return the previous applied patch (issue3245) The current behaviour is to return the previous one in the series but at the same time the implementation is buggy because it does not take guarded patches in account. diff -r c36db39b3fee -r 7e5a281a082c hgext/mq.py --- a/hgext/mq.py Fri Feb 03 19:38:31 2012 +0100 +++ b/hgext/mq.py Fri Feb 03 19:47:09 2012 +0100 @@ -2217,7 +2217,7 @@ @command("qprev", seriesopts, _('hg qprev [-s]')) def prev(ui, repo, **opts): - """print the name of the previous patch + """print the name of the previous applied patch Returns 0 on success.""" q = repo.mq @@ -2228,7 +2228,8 @@ if not l: ui.write(_("no patches applied\n")) return 1 - q.qseries(repo, start=l - 2, length=1, status='A', + idx = q.series.index(q.applied[-2].name) + q.qseries(repo, start=idx, length=1, status='A', summary=opts.get('summary')) def setupheaderopts(ui, opts): diff -r c36db39b3fee -r 7e5a281a082c tests/test-mq-guards.t --- a/tests/test-mq-guards.t Fri Feb 03 19:38:31 2012 +0100 +++ b/tests/test-mq-guards.t Fri Feb 03 19:47:09 2012 +0100 @@ -172,6 +172,8 @@ $ hg qpush -a applying c.patch now at: c.patch + $ hg qprev + b.patch Used to be an issue with holes in the patch sequence So, put one hole on the base and ask for topmost patch. diff -r c36db39b3fee -r 7e5a281a082c tests/test-mq.t --- a/tests/test-mq.t Fri Feb 03 19:38:31 2012 +0100 +++ b/tests/test-mq.t Fri Feb 03 19:47:09 2012 +0100 @@ -74,7 +74,7 @@ qnew create a new 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 + qprev print the name of the previous applied patch qpush push the next patch onto the stack qqueue manage multiple patch queues qrefresh update the current patch