D3579: state: write the version number in plain text on top of state files
yuja (Yuya Nishihara)
phabricator at mercurial-scm.org
Tue May 22 07:13:03 EDT 2018
yuja added a comment.
> - 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())
mercurial/state.py:65: undefined name 'iv'
mercurial/state.py:73: local variable 'version' is assigned to but never used
> + except ValueError:
> + raise error.ProgrammingError("unknown version of state file"
> + " found")
Perhaps this should be a CorruptedState error. We don't know whether the
state file is good until reading it.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3579
To: pulkit, #hg-reviewers, martinvonz
Cc: yuja, martinvonz, mercurial-devel
More information about the Mercurial-devel
mailing list