mercurial/shelve.py
changeset 49430 2064bbf7a1d5
parent 49429 fa00c407d61c
child 49457 53229e170496
equal deleted inserted replaced
49429:fa00c407d61c 49430:2064bbf7a1d5
    97             mtime = shelf.mtime()
    97             mtime = shelf.mtime()
    98             info.append((mtime, name))
    98             info.append((mtime, name))
    99         return sorted(info, reverse=True)
    99         return sorted(info, reverse=True)
   100 
   100 
   101 
   101 
       
   102 def _use_internal_phase(repo):
       
   103     return (
       
   104         phases.supportinternal(repo)
       
   105         and repo.ui.config(b'shelve', b'store') == 'internal'
       
   106     )
       
   107 
       
   108 
   102 def _target_phase(repo):
   109 def _target_phase(repo):
   103     return phases.internal if phases.supportinternal(repo) else phases.secret
   110     return phases.internal if _use_internal_phase(repo) else phases.secret
   104 
   111 
   105 
   112 
   106 class Shelf:
   113 class Shelf:
   107     """Represents a shelf, including possibly multiple files storing it.
   114     """Represents a shelf, including possibly multiple files storing it.
   108 
   115 
   546         extra[b'shelve_unknown'] = b'\0'.join(s.unknown)
   553         extra[b'shelve_unknown'] = b'\0'.join(s.unknown)
   547         repo[None].add(s.unknown)
   554         repo[None].add(s.unknown)
   548 
   555 
   549 
   556 
   550 def _finishshelve(repo, tr):
   557 def _finishshelve(repo, tr):
   551     if phases.supportinternal(repo):
   558     if _use_internal_phase(repo):
   552         tr.close()
   559         tr.close()
   553     else:
   560     else:
   554         _aborttransaction(repo, tr)
   561         _aborttransaction(repo, tr)
   555 
   562 
   556 
   563 
   787 
   794 
   788             merge.clean_update(state.pendingctx)
   795             merge.clean_update(state.pendingctx)
   789             if state.activebookmark and state.activebookmark in repo._bookmarks:
   796             if state.activebookmark and state.activebookmark in repo._bookmarks:
   790                 bookmarks.activate(repo, state.activebookmark)
   797                 bookmarks.activate(repo, state.activebookmark)
   791             mergefiles(ui, repo, state.wctx, state.pendingctx)
   798             mergefiles(ui, repo, state.wctx, state.pendingctx)
   792             if not phases.supportinternal(repo):
   799             if not _use_internal_phase(repo):
   793                 repair.strip(
   800                 repair.strip(
   794                     ui, repo, state.nodestoremove, backup=False, topic=b'shelve'
   801                     ui, repo, state.nodestoremove, backup=False, topic=b'shelve'
   795                 )
   802                 )
   796         finally:
   803         finally:
   797             shelvedstate.clear(repo)
   804             shelvedstate.clear(repo)
   874 
   881 
   875         merge.update(pendingctx)
   882         merge.update(pendingctx)
   876         mergefiles(ui, repo, state.wctx, shelvectx)
   883         mergefiles(ui, repo, state.wctx, shelvectx)
   877         restorebranch(ui, repo, state.branchtorestore)
   884         restorebranch(ui, repo, state.branchtorestore)
   878 
   885 
   879         if not phases.supportinternal(repo):
   886         if not _use_internal_phase(repo):
   880             repair.strip(
   887             repair.strip(
   881                 ui, repo, state.nodestoremove, backup=False, topic=b'shelve'
   888                 ui, repo, state.nodestoremove, backup=False, topic=b'shelve'
   882             )
   889             )
   883         shelvedstate.clear(repo)
   890         shelvedstate.clear(repo)
   884         if not ispartialunshelve:
   891         if not ispartialunshelve: