[PATCH 4 of 9 phases] mq: qimporting revision set them to secret
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Jan 17 17:37:45 CST 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1326763560 -3600
# Node ID ce63e6dbcc6184c5a3d1749551a1dbfd9fd19f86
# Parent 6cea4df53b7118cda84e278e72ff85bc76c92dd0
mq: qimporting revision set them to secret
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -1814,6 +1814,9 @@
self.added.append(patchname)
patchname = None
+ if rev:
+ # if we added anything with rev, we must move the secret root
+ phases.retractboundary(repo, phases.secret, [n])
self.parseseries()
self.applieddirty = True
self.seriesdirty = True
@@ -1988,16 +1991,21 @@
Returns 0 if import succeeded.
"""
- q = repo.mq
+ lock = repo.lock() # cause this may move phase
try:
- q.qimport(repo, filename, patchname=opts.get('name'),
- existing=opts.get('existing'), force=opts.get('force'),
- rev=opts.get('rev'), git=opts.get('git'))
+ q = repo.mq
+ try:
+ q.qimport(repo, filename, patchname=opts.get('name'),
+ existing=opts.get('existing'), force=opts.get('force'),
+ rev=opts.get('rev'), git=opts.get('git'))
+ finally:
+ q.savedirty()
+
+
+ if opts.get('push') and not opts.get('rev'):
+ return q.push(repo, None)
finally:
- q.savedirty()
-
- if opts.get('push') and not opts.get('rev'):
- return q.push(repo, None)
+ lock.release()
return 0
def qinit(ui, repo, create):
diff --git a/tests/test-mq-qimport.t b/tests/test-mq-qimport.t
--- a/tests/test-mq-qimport.t
+++ b/tests/test-mq-qimport.t
@@ -165,6 +165,8 @@
patch b.diff finalized without changeset message
patch another.diff finalized without changeset message
$ hg qimport -rtip -P
+ $ hg phase -r qbase
+ 2: secret
$ hg qpop -a
popping 2.diff
patch queue now empty
More information about the Mercurial-devel
mailing list