[PATCH 12 of 12] phases: prevent mq to qimport immutable change
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Tue Oct 18 12:27:09 CDT 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1318958708 -7200
# Node ID 1080b0b94f25c282c3a338bb4d864408d6d6761e
# Parent 5254346fe69ab981c3d6007e20ba831566b49cbb
phases: prevent mq to qimport immutable change.
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -1761,10 +1761,14 @@ class queue(object):
if heads != [repo.changelog.node(rev[0])]:
raise util.Abort(_('revision %d has unmanaged children')
% rev[0])
lastparent = None
+ if not repo[rev[-1]].mutable():
+ raise util.Abort(_('revision %d is not mutable') % rev[0],
+ hint=_('See hg help phases for details'))
+
diffopts = self.diffopts({'git': git})
for r in rev:
p1, p2 = repo.changelog.parentrevs(r)
n = repo.changelog.node(r)
if p2 != nullrev:
diff --git a/tests/test-mq-qimport-fail-cleanup.t b/tests/test-mq-qimport-fail-cleanup.t
--- a/tests/test-mq-qimport-fail-cleanup.t
+++ b/tests/test-mq-qimport-fail-cleanup.t
@@ -30,5 +30,11 @@ qimport valid patch followed by invalid
valid patches before fail added to series
$ hg qseries
b.patch
+
+ $ hg push -q -r 0 . # update phase
+ $ hg qimport -r 0
+ abort: revision 0 is not mutable
+ (See hg help phases for details)
+ [255]
More information about the Mercurial-devel
mailing list