diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -479,7 +479,7 @@ class queue(object): if self.added: qrepo = self.qrepo() if qrepo: - qrepo[None].add(self.added) + qrepo[None].add(f for f in self.added if f not in qrepo[None]) self.added = [] def removeundo(self, repo): diff --git a/tests/test-mq-qdelete.t b/tests/test-mq-qdelete.t --- a/tests/test-mq-qdelete.t +++ b/tests/test-mq-qdelete.t @@ -150,3 +150,15 @@ Delete the same patch twice in one comma series status +qdel -k X && hg qimp -e X used to trigger spurious output with versioned queues + + $ hg init --mq + $ hg qimport -r 3 + $ hg qpop + popping 3.diff + patch queue now empty + $ hg qdel -k 3.diff + $ hg qimp -e 3.diff + adding 3.diff to series file + $ hg qfinish -a + no patches applied