view tests/test-demandimport.py.out @ 32285:fe3105e6e051

shelve: make shelvestate use simplekeyvaluefile Currently shelvestate uses line ordering to differentiate fields. This makes it hard for extensions to wrap shelve, since if two alternative versions of code add a new line, correct merging is going to be problematic. simplekeyvaluefile was introduced fot this purpose specifically. After this patch: - shelve will always write a simplekeyvaluefile - unshelve will check the first line of the file for a version, and if the version is 1, will read it in a position-based way, if the version is 2, will read it in a key-value way As discussed with Yuya previously, this will be able to handle old-style shelvedstate files, but old Mercurial versions will fail on the attempt to read shelvedstate file of version 2 with a self-explanatory message: 'abort: this version of shelve is incompatible with the version used in this repo'
author Kostia Balytskyi <ikostia@fb.com>
date Sat, 13 May 2017 14:52:29 -0700
parents 1914db1b7d9e
children 252d2260c74e
line wrap: on
line source

os = <unloaded module 'os'>
os.system = <built-in function system>
os = <module 'os' from '?'>
util = <unloaded module 'util'>
util.system = <function system at 0x?>
util = <module 'mercurial.util' from '?'>
util.system = <function system at 0x?>
hgweb = <unloaded module 'hgweb'>
hgweb_mod = <unloaded module 'hgweb_mod'>
hgweb = <module 'mercurial.hgweb' from '?'>
fred = <unloaded module 're'>
re = <unloaded module 'sys'>
fred = <unloaded module 're'>
fred.sub = <function sub at 0x?>
fred = <proxied module 're'>
re = <unloaded module 'sys'>
re.stderr = <open file '<whatever>', mode 'w' at 0x?>
re = <proxied module 'sys'>
contextlib = <unloaded module 'contextlib'>
contextlib.unknownattr = ImportError: cannot import name unknownattr
__import__('contextlib', ..., ['unknownattr']) = <module 'contextlib' from '?'>
hasattr(contextlibimp, 'unknownattr') = False
node = <module 'mercurial.node' from '?'>