# HG changeset patch # User Pierre-Yves David # Date 1327941465 -3600 # Node ID 29ea059be33ca26cf1af4048812e1ac320def78c # Parent 31c02546e6de074e4f90ace02e7f15dd739005a6 qimport: when mq.secret=True set qimported revision as secret diff -r 31c02546e6de -r 29ea059be33c hgext/mq.py --- 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): diff -r 31c02546e6de -r 29ea059be33c tests/test-mq-qimport.t --- 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