D3579: state: write the version number in plain text on top of state files
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Sat May 19 10:52:08 EDT 2018
pulkit updated this revision to Diff 8787.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3579?vs=8734&id=8787
REVISION DETAIL
https://phab.mercurial-scm.org/D3579
AFFECTED FILES
mercurial/state.py
CHANGE DETAILS
diff --git a/mercurial/state.py b/mercurial/state.py
--- a/mercurial/state.py
+++ b/mercurial/state.py
@@ -22,6 +22,7 @@
from .thirdparty import cbor
from . import (
+ error,
util,
)
@@ -51,18 +52,28 @@
"""read the existing state file and return a dict of data stored"""
return self._read()
- def save(self, data):
+ def save(self, version, data):
"""write all the state data stored to .hg/<filename> file
we use third-party library cbor to serialize data to write in the file.
"""
+ if not isinstance(version, int):
+ raise error.ProgrammingError("version of state file should be"
+ " an integer")
+
with self._repo.vfs(self.fname, 'wb', atomictemp=True) as fp:
+ fp.write('%d\n' % iv)
cbor.dump(self.opts, fp, canonical=True)
def _read(self):
"""reads the state file and returns a dictionary which contain
data in the same format as it was before storing"""
with self._repo.vfs(self.fname, 'rb') as fp:
+ try:
+ version = int(fp.readline())
+ except ValueError:
+ raise error.ProgrammingError("unknown version of state file"
+ " found")
return cbor.load(fp)
def delete(self):
To: pulkit, #hg-reviewers, martinvonz
Cc: martinvonz, mercurial-devel
More information about the Mercurial-devel
mailing list