# HG changeset patch # User Pierre-Yves David # Date 1326763560 -3600 # Node ID 2eec74d7ce9533e150f589c3b5074857df32ec49 # Parent f94513971767f2108534058fc6719a3447ea2d01 mq: qimporting revision set them to secret diff -r f94513971767 -r 2eec74d7ce95 hgext/mq.py --- a/hgext/mq.py Wed Jan 18 16:53:49 2012 +0100 +++ b/hgext/mq.py Tue Jan 17 02:26:00 2012 +0100 @@ -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 -r f94513971767 -r 2eec74d7ce95 tests/test-mq-qimport.t --- a/tests/test-mq-qimport.t Wed Jan 18 16:53:49 2012 +0100 +++ b/tests/test-mq-qimport.t Tue Jan 17 02:26:00 2012 +0100 @@ -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