comparison mercurial/revlogutils/flagutil.py @ 47077:119790e1c67c

cg4: introduce protocol flag to signify the presence of sidedata We need a way of signaling whether the current revision has sidedata or not, and re-using the revision flags would waste potential revlog flags and mix two normally independent layers. In this change, we add a single byte at the start of the ch4 delta header to set potential protocol flags. We also reclaim the revlog flag for sidedata, since it is no longer used, in its place now lives the (also experimental) copytracing flag. When generating deltas, apply the `CG_FLAG_SIDEDATA` flag if there is sidedata. When applying the deltas, if said flag is present, the next chunk contains the sidedata. Differential Revision: https://phab.mercurial-scm.org/D10343
author Rapha?l Gom?s <rgomes@octobus.net>
date Sat, 10 Apr 2021 11:27:40 +0200
parents 3d740058b467
children e91aa800ae5b
comparison
equal deleted inserted replaced
47076:08e26ef4ad35 47077:119790e1c67c
16 REVIDX_EXTSTORED, 16 REVIDX_EXTSTORED,
17 REVIDX_FLAGS_ORDER, 17 REVIDX_FLAGS_ORDER,
18 REVIDX_HASCOPIESINFO, 18 REVIDX_HASCOPIESINFO,
19 REVIDX_ISCENSORED, 19 REVIDX_ISCENSORED,
20 REVIDX_RAWTEXT_CHANGING_FLAGS, 20 REVIDX_RAWTEXT_CHANGING_FLAGS,
21 REVIDX_SIDEDATA,
22 ) 21 )
23 22
24 from .. import error, util 23 from .. import error, util
25 24
26 # blanked usage of all the name to prevent pyflakes constraints 25 # blanked usage of all the name to prevent pyflakes constraints
27 # We need these name available in the module for extensions. 26 # We need these name available in the module for extensions.
28 REVIDX_ISCENSORED 27 REVIDX_ISCENSORED
29 REVIDX_ELLIPSIS 28 REVIDX_ELLIPSIS
30 REVIDX_EXTSTORED 29 REVIDX_EXTSTORED
31 REVIDX_SIDEDATA
32 REVIDX_HASCOPIESINFO, 30 REVIDX_HASCOPIESINFO,
33 REVIDX_DEFAULT_FLAGS 31 REVIDX_DEFAULT_FLAGS
34 REVIDX_FLAGS_ORDER 32 REVIDX_FLAGS_ORDER
35 REVIDX_RAWTEXT_CHANGING_FLAGS 33 REVIDX_RAWTEXT_CHANGING_FLAGS
36 34