diff -r 8fb6844a4ff1 -r bfc09ea87f3e hgext/mq.py --- a/hgext/mq.py Wed Aug 06 11:53:08 2014 -0500 +++ b/hgext/mq.py Wed Aug 06 00:48:51 2014 -0700 @@ -930,7 +930,12 @@ oldqbase = repo[qfinished[0]] tphase = repo.ui.config('phases', 'new-commit', phases.draft) if oldqbase.phase() > tphase and oldqbase.p1().phase() <= tphase: - phases.advanceboundary(repo, tphase, qfinished) + tr = repo.transaction('qfinish') + try: + phases.advanceboundary(repo, tphase, qfinished) + tr.close() + finally: + tr.release() def delete(self, repo, patches, opts): if not patches and not opts.get('rev'):