[PATCH evolve-ext-V4] evolve: add new methods _evolvestatewrite, _evolvestateread, _evolvestatedelete
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sun Jan 3 16:33:15 UTC 2016
On 12/21/2015 12:45 AM, Shusen LIU wrote:
> # HG changeset patch
> # User Shusen LIU <liushusen at fb.com>
> # Date 1450654456 28800
> # Sun Dec 20 15:34:16 2015 -0800
> # Node ID a14a183b9457ba733bd04cec0662ef6ac957845d
> # Parent 52c276d2ddb2f076c84ef8258038ef7b5ee00fe4
> evolve: add new methods _evolvestatewrite, _evolvestateread, _evolvestatedelete
>
> This patch introduces three new methods to read/write/delete data in vfs file
> 'evolvestate'. Provide the first version of impl of these methods, the
> _fm0evolvestateversion = 0.
> This enable us to persist evolvestate data, restore evolvestate data, and
> delete it after it's no longer needed. And allows us to support a continued
> keywork to implement evolve state.
>
> diff --git a/hgext/evolve.py b/hgext/evolve.py
> --- a/hgext/evolve.py
> +++ b/hgext/evolve.py
> @@ -3692,3 +3692,35 @@
> repo._bookmarks[book] = dest.node()
> if oldbookmarks or destbookmarks:
> repo._bookmarks.recordchange(tr)
> +
> +## Parsing and writing of version "0"
> +#
> +# The file contains one line, seperated by '\0', orig hex, dest hex, and commit
> +# message. Assuming commitmsg cannot contain '\0'.
From past experience we usually design on disk format with the current
properly:
- starts with an explicite version number to detect format changes.
- prefer full binary formatformat (<field-size><field-data>) instead of
separator
- Usually try to have an extensible format by adding "field" identifier
The first point (version number) is the most important as it allow us to
move forward with a better format. So we need such version number before
moving forward with the on disk format.
the others points are less critical and if you are interested we can
discuss them in person when I'm in London next week.
Cheers,
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list