--- a/hgext/mq.py Mon Jan 30 17:36:30 2012 +0100
+++ b/hgext/mq.py Mon Jan 30 17:37:45 2012 +0100
@@ -1832,6 +1832,9 @@
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
@@ -2006,16 +2009,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):
--- a/tests/test-mq-qimport.t Mon Jan 30 17:36:30 2012 +0100
+++ b/tests/test-mq-qimport.t Mon Jan 30 17:37:45 2012 +0100
@@ -226,3 +226,19 @@
$ 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