equal
deleted
inserted
replaced
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') |