[PATCH 3 of 4 shelve-ext v5] shelve: refactor shelvestate loading
Yuya Nishihara
yuya at tcha.org
Sat May 13 06:36:04 EDT 2017
On Thu, 11 May 2017 14:43:26 -0700, Kostia Balytskyi wrote:
> # HG changeset patch
> # User Kostia Balytskyi <ikostia at fb.com>
> # Date 1494520029 25200
> # Thu May 11 09:27:09 2017 -0700
> # Node ID 9170d8e0460bfe9ae4ea79394786cf2cac686fcb
> # Parent b79f27451d7af524c07b89a983cf750bd96292c5
> shelve: refactor shelvestate loading
> + # some basic syntactic verification and transformation
> + try:
> + d['version'] = int(d['version'])
> + if d['version'] != cls._version:
> + raise error.Abort(_('this version of shelve is incompatible '
> + 'with the version used in this repo'))
> + d['originalwctx'] = nodemod.bin(d['originalwctx'])
> + d['pendingctx'] = nodemod.bin(d['pendingctx'])
> + d['parents'] = [nodemod.bin(h)
> + for h in d['parents'].split(' ')]
> + d['nodestoremove'] = [nodemod.bin(h)
> + for h in d['nodestoremove'].split(' ')]
> + except (ValueError, TypeError, KeyError) as err:
> + raise error.CorruptedState(str(err))
> +
> try:
> obj = cls()
> - obj.name = name
> - obj.wctx = repo[wctx]
> - obj.pendingctx = repo[pendingctx]
> - obj.parents = parents
> - obj.nodestoremove = nodestoremove
> - obj.branchtorestore = branchtorestore
> - obj.keep = keep
> + obj.name = d.get('name')
Still d.get() here seems not appropriate. Does the shelve work if state.name
is None?
> + obj.wctx = repo[d.get('originalwctx')]
> + obj.pendingctx = repo[d.get('pendingctx')]
> + obj.parents = d.get('parents')
> + obj.nodestoremove = d.get('nodestoremove')
> + obj.branchtorestore = d.get('branchtorestore')
> + obj.keep = d.get('keep') == cls._keep
> obj.activebookmark = ''
> - if activebook != cls._noactivebook:
> - obj.activebookmark = activebook
> + if d.get('activebook', '') != cls._noactivebook:
> + obj.activebookmark = d.get('activebook')
Maybe obj.activebookmark = d.get('activebook', '') ?
More information about the Mercurial-devel
mailing list