mercurial/shelve.py
changeset 49306 2e726c934fcd
parent 49284 d44e3c45f0e4
child 49425 35c9f0bc2648
child 49507 f0a3aaa07d6a
equal deleted inserted replaced
49305:53e9422a9b45 49306:2e726c934fcd
    20 shelved change has a distinct name. For details, see the help for "hg
    20 shelved change has a distinct name. For details, see the help for "hg
    21 shelve".
    21 shelve".
    22 """
    22 """
    23 
    23 
    24 import collections
    24 import collections
    25 import errno
       
    26 import itertools
    25 import itertools
    27 import stat
    26 import stat
    28 
    27 
    29 from .i18n import _
    28 from .i18n import _
    30 from .node import (
    29 from .node import (
    80 
    79 
    81     def listshelves(self):
    80     def listshelves(self):
    82         """return all shelves in repo as list of (time, name)"""
    81         """return all shelves in repo as list of (time, name)"""
    83         try:
    82         try:
    84             names = self.vfs.listdir()
    83             names = self.vfs.listdir()
    85         except OSError as err:
    84         except FileNotFoundError:
    86             if err.errno != errno.ENOENT:
       
    87                 raise
       
    88             return []
    85             return []
    89         info = []
    86         info = []
    90         seen = set()
    87         seen = set()
    91         for filename in names:
    88         for filename in names:
    92             name = filename.rsplit(b'.', 1)[0]
    89             name = filename.rsplit(b'.', 1)[0]
   722 def _loadshelvedstate(ui, repo, opts):
   719 def _loadshelvedstate(ui, repo, opts):
   723     try:
   720     try:
   724         state = shelvedstate.load(repo)
   721         state = shelvedstate.load(repo)
   725         if opts.get(b'keep') is None:
   722         if opts.get(b'keep') is None:
   726             opts[b'keep'] = state.keep
   723             opts[b'keep'] = state.keep
   727     except IOError as err:
   724     except FileNotFoundError:
   728         if err.errno != errno.ENOENT:
       
   729             raise
       
   730         cmdutil.wrongtooltocontinue(repo, _(b'unshelve'))
   725         cmdutil.wrongtooltocontinue(repo, _(b'unshelve'))
   731     except error.CorruptedState as err:
   726     except error.CorruptedState as err:
   732         ui.debug(pycompat.bytestr(err) + b'\n')
   727         ui.debug(pycompat.bytestr(err) + b'\n')
   733         if opts.get(b'continue'):
   728         if opts.get(b'continue'):
   734             msg = _(b'corrupted shelved state file')
   729             msg = _(b'corrupted shelved state file')