hgext/shelve.py
changeset 39519 5d69e2412ec8
parent 39387 da84cca65036
child 39601 84d6e9a2b104
equal deleted inserted replaced
39518:c29548ba4a75 39519:5d69e2412ec8
   138             raise error.Abort(_("shelved change '%s' not found") % self.name)
   138             raise error.Abort(_("shelved change '%s' not found") % self.name)
   139 
   139 
   140     def applybundle(self):
   140     def applybundle(self):
   141         fp = self.opener()
   141         fp = self.opener()
   142         try:
   142         try:
       
   143             targetphase = phases.internal
       
   144             if not phases.supportinternal(self.repo):
       
   145                 targetphase = phases.secret
   143             gen = exchange.readbundle(self.repo.ui, fp, self.fname, self.vfs)
   146             gen = exchange.readbundle(self.repo.ui, fp, self.fname, self.vfs)
   144             bundle2.applybundle(self.repo, gen, self.repo.currenttransaction(),
   147             bundle2.applybundle(self.repo, gen, self.repo.currenttransaction(),
   145                                 source='unshelve',
   148                                 source='unshelve',
   146                                 url='bundle:' + self.vfs.join(self.fname),
   149                                 url='bundle:' + self.vfs.join(self.fname),
   147                                 targetphase=phases.secret)
   150                                 targetphase=targetphase)
   148         finally:
   151         finally:
   149             fp.close()
   152             fp.close()
   150 
   153 
   151     def bundlerepo(self):
   154     def bundlerepo(self):
   152         return bundlerepo.bundlerepository(self.repo.baseui, self.repo.root,
   155         return bundlerepo.bundlerepository(self.repo.baseui, self.repo.root,
   378 def getcommitfunc(extra, interactive, editor=False):
   381 def getcommitfunc(extra, interactive, editor=False):
   379     def commitfunc(ui, repo, message, match, opts):
   382     def commitfunc(ui, repo, message, match, opts):
   380         hasmq = util.safehasattr(repo, 'mq')
   383         hasmq = util.safehasattr(repo, 'mq')
   381         if hasmq:
   384         if hasmq:
   382             saved, repo.mq.checkapplied = repo.mq.checkapplied, False
   385             saved, repo.mq.checkapplied = repo.mq.checkapplied, False
   383         overrides = {('phases', 'new-commit'): phases.secret}
   386 
       
   387         targetphase = phases.internal
       
   388         if not phases.supportinternal(repo):
       
   389             targetphase = phases.secret
       
   390         overrides = {('phases', 'new-commit'): targetphase}
   384         try:
   391         try:
   385             editor_ = False
   392             editor_ = False
   386             if editor:
   393             if editor:
   387                 editor_ = cmdutil.getcommiteditor(editform='shelve.shelve',
   394                 editor_ = cmdutil.getcommiteditor(editform='shelve.shelve',
   388                                                   **pycompat.strkwargs(opts))
   395                                                   **pycompat.strkwargs(opts))
   700 
   707 
   701         with repo.dirstate.parentchange():
   708         with repo.dirstate.parentchange():
   702             repo.setparents(state.pendingctx.node(), nodemod.nullid)
   709             repo.setparents(state.pendingctx.node(), nodemod.nullid)
   703             repo.dirstate.write(repo.currenttransaction())
   710             repo.dirstate.write(repo.currenttransaction())
   704 
   711 
   705         overrides = {('phases', 'new-commit'): phases.secret}
   712         targetphase = phases.internal
       
   713         if not phases.supportinternal(repo):
       
   714             targetphase = phases.secret
       
   715         overrides = {('phases', 'new-commit'): targetphase}
   706         with repo.ui.configoverride(overrides, 'unshelve'):
   716         with repo.ui.configoverride(overrides, 'unshelve'):
   707             with repo.dirstate.parentchange():
   717             with repo.dirstate.parentchange():
   708                 repo.setparents(state.parents[0], nodemod.nullid)
   718                 repo.setparents(state.parents[0], nodemod.nullid)
   709                 newnode = repo.commit(text=shelvectx.description(),
   719                 newnode = repo.commit(text=shelvectx.description(),
   710                                       extra=shelvectx.extra(),
   720                                       extra=shelvectx.extra(),