[PATCH 05 of 10] qimport: when mq.secret=True set qimported revision as secret
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Mon Jan 30 10:49:39 CST 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1327941465 -3600
# Branch stable
# Node ID c317f84ac6bbb26a4b6010959282d7d4a196da9c
# Parent 7eb4bb89327656a36a1fbae241bfecd726d986b9
qimport: when mq.secret=True set qimported revision as secret
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -1830,10 +1830,13 @@ class queue(object):
se = statusentry(n, patchname)
self.applied.insert(0, se)
self.added.append(patchname)
patchname = None
+ if rev and repo.ui.configbool('mq', 'secret', False):
+ # 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
for i, filename in enumerate(files):
@@ -2004,20 +2007,25 @@ def qimport(ui, repo, *filename, **opts)
hg qimport -e existing-patch -n new-name
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):
"""initialize a new queue repository
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
@@ -224,5 +224,21 @@ set up hgweb
$ cat hg.pid >> $DAEMON_PIDS
$ cd ../repo
$ hg qimport http://localhost:$HGPORT/raw-rev/0///
adding 0 to series file
+
+check qimport phase:
+
+ $ hg -q qpush
+ now at: 0
+ $ hg phase qparent
+ 1: draft
+ $ hg qimport -r qparent
+ $ hg phase qbase
+ 1: draft
+ $ hg qfinish qbase
+ $ echo '[mq]' >> $HGRCPATH
+ $ echo 'secret=true' >> $HGRCPATH
+ $ hg qimport -r qparent
+ $ hg phase qbase
+ 1: secret
More information about the Mercurial-devel
mailing list