# HG changeset patch # User Boris Feld # Date 1527588738 -7200 # Node ID 5d69e2412ec8f6930343eabeada06f174439d30a # Parent c29548ba4a7578c6d74e94acf0c00a748d6edaee shelve: use the internal phase when possible If the repository support it, use the internal phase for all changesets created by shelve. diff -r c29548ba4a75 -r 5d69e2412ec8 hgext/shelve.py --- a/hgext/shelve.py Thu Aug 23 00:41:20 2018 -0700 +++ b/hgext/shelve.py Tue May 29 12:12:18 2018 +0200 @@ -140,11 +140,14 @@ def applybundle(self): fp = self.opener() try: + targetphase = phases.internal + if not phases.supportinternal(self.repo): + targetphase = phases.secret gen = exchange.readbundle(self.repo.ui, fp, self.fname, self.vfs) bundle2.applybundle(self.repo, gen, self.repo.currenttransaction(), source='unshelve', url='bundle:' + self.vfs.join(self.fname), - targetphase=phases.secret) + targetphase=targetphase) finally: fp.close() @@ -380,7 +383,11 @@ hasmq = util.safehasattr(repo, 'mq') if hasmq: saved, repo.mq.checkapplied = repo.mq.checkapplied, False - overrides = {('phases', 'new-commit'): phases.secret} + + targetphase = phases.internal + if not phases.supportinternal(repo): + targetphase = phases.secret + overrides = {('phases', 'new-commit'): targetphase} try: editor_ = False if editor: @@ -702,7 +709,10 @@ repo.setparents(state.pendingctx.node(), nodemod.nullid) repo.dirstate.write(repo.currenttransaction()) - overrides = {('phases', 'new-commit'): phases.secret} + targetphase = phases.internal + if not phases.supportinternal(repo): + targetphase = phases.secret + overrides = {('phases', 'new-commit'): targetphase} with repo.ui.configoverride(overrides, 'unshelve'): with repo.dirstate.parentchange(): repo.setparents(state.parents[0], nodemod.nullid) diff -r c29548ba4a75 -r 5d69e2412ec8 tests/test-shelve.t --- a/tests/test-shelve.t Thu Aug 23 00:41:20 2018 -0700 +++ b/tests/test-shelve.t Tue May 29 12:12:18 2018 +0200 @@ -1,3 +1,5 @@ +#testcases stripbased phasebased + $ cat <> $HGRCPATH > [extensions] > mq = @@ -9,6 +11,15 @@ > maxbackups = 2 > EOF +#if phasebased + + $ cat <> $HGRCPATH + > [format] + > internal-phase = yes + > EOF + +#endif + $ hg init repo $ cd repo $ mkdir a b