##// END OF EJS Templates
revlog: split constants into a new `revlogutils.constants` module...
Boris Feld -
r39365:729082bb default
parent child Browse files
Show More
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
@@ -0,0 +1,46 b''
1 # revlogdeltas.py - constant used for revlog logic
2 #
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
4 # Copyright 2018 Octobus <contact@octobus.net>
5 #
6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version.
8 """Helper class to compute deltas stored inside revlogs"""
9
10 from __future__ import absolute_import
11
12 from .. import (
13 util,
14 )
15
16 # revlog header flags
17 REVLOGV0 = 0
18 REVLOGV1 = 1
19 # Dummy value until file format is finalized.
20 # Reminder: change the bounds check in revlog.__init__ when this is changed.
21 REVLOGV2 = 0xDEAD
22 FLAG_INLINE_DATA = (1 << 16)
23 FLAG_GENERALDELTA = (1 << 17)
24 REVLOG_DEFAULT_FLAGS = FLAG_INLINE_DATA
25 REVLOG_DEFAULT_FORMAT = REVLOGV1
26 REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS
27 REVLOGV1_FLAGS = FLAG_INLINE_DATA | FLAG_GENERALDELTA
28 REVLOGV2_FLAGS = REVLOGV1_FLAGS
29
30 # revlog index flags
31 REVIDX_ISCENSORED = (1 << 15) # revision has censor metadata, must be verified
32 REVIDX_ELLIPSIS = (1 << 14) # revision hash does not match data (narrowhg)
33 REVIDX_EXTSTORED = (1 << 13) # revision data is stored externally
34 REVIDX_DEFAULT_FLAGS = 0
35 # stable order in which flags need to be processed and their processors applied
36 REVIDX_FLAGS_ORDER = [
37 REVIDX_ISCENSORED,
38 REVIDX_ELLIPSIS,
39 REVIDX_EXTSTORED,
40 ]
41 REVIDX_KNOWN_FLAGS = util.bitsfrom(REVIDX_FLAGS_ORDER)
42 # bitmark for flags that could cause rawdata content change
43 REVIDX_RAWTEXT_CHANGING_FLAGS = REVIDX_ISCENSORED | REVIDX_EXTSTORED
44
45 # maximum <delta-chain-data>/<revision-text-length> ratio
46 LIMIT_DELTA2TEXT = 2
@@ -28,6 +28,8 b' allowsymbolimports = ('
28 'mercurial.hgweb.request',
28 'mercurial.hgweb.request',
29 'mercurial.i18n',
29 'mercurial.i18n',
30 'mercurial.node',
30 'mercurial.node',
31 # for revlog to re-export constant to extensions
32 'mercurial.revlogutils.constants',
31 # for cffi modules to re-export pure functions
33 # for cffi modules to re-export pure functions
32 'mercurial.pure.base85',
34 'mercurial.pure.base85',
33 'mercurial.pure.bdiff',
35 'mercurial.pure.bdiff',
@@ -36,6 +36,26 b' from .node import ('
36 wdirrev,
36 wdirrev,
37 )
37 )
38 from .i18n import _
38 from .i18n import _
39 from .revlogutils.constants import (
40 FLAG_GENERALDELTA,
41 FLAG_INLINE_DATA,
42 LIMIT_DELTA2TEXT,
43 REVIDX_DEFAULT_FLAGS,
44 REVIDX_ELLIPSIS,
45 REVIDX_EXTSTORED,
46 REVIDX_FLAGS_ORDER,
47 REVIDX_ISCENSORED,
48 REVIDX_KNOWN_FLAGS,
49 REVIDX_RAWTEXT_CHANGING_FLAGS,
50 REVLOGV0,
51 REVLOGV1,
52 REVLOGV1_FLAGS,
53 REVLOGV2,
54 REVLOGV2_FLAGS,
55 REVLOG_DEFAULT_FLAGS,
56 REVLOG_DEFAULT_FORMAT,
57 REVLOG_DEFAULT_VERSION,
58 )
39 from .thirdparty import (
59 from .thirdparty import (
40 attr,
60 attr,
41 )
61 )
@@ -54,40 +74,31 b' from .utils import ('
54 stringutil,
74 stringutil,
55 )
75 )
56
76
77 # blanked usage of all the name to prevent pyflakes constraints
78 # We need these name available in the module for extensions.
79 REVLOGV0
80 REVLOGV1
81 REVLOGV2
82 FLAG_INLINE_DATA
83 FLAG_GENERALDELTA
84 REVLOG_DEFAULT_FLAGS
85 REVLOG_DEFAULT_FORMAT
86 REVLOG_DEFAULT_VERSION
87 REVLOGV1_FLAGS
88 REVLOGV2_FLAGS
89 REVIDX_ISCENSORED
90 REVIDX_ELLIPSIS
91 REVIDX_EXTSTORED
92 REVIDX_DEFAULT_FLAGS
93 REVIDX_FLAGS_ORDER
94 REVIDX_KNOWN_FLAGS
95 REVIDX_RAWTEXT_CHANGING_FLAGS
96
57 parsers = policy.importmod(r'parsers')
97 parsers = policy.importmod(r'parsers')
58
98
59 # Aliased for performance.
99 # Aliased for performance.
60 _zlibdecompress = zlib.decompress
100 _zlibdecompress = zlib.decompress
61
101
62 # revlog header flags
63 REVLOGV0 = 0
64 REVLOGV1 = 1
65 # Dummy value until file format is finalized.
66 # Reminder: change the bounds check in revlog.__init__ when this is changed.
67 REVLOGV2 = 0xDEAD
68 FLAG_INLINE_DATA = (1 << 16)
69 FLAG_GENERALDELTA = (1 << 17)
70 REVLOG_DEFAULT_FLAGS = FLAG_INLINE_DATA
71 REVLOG_DEFAULT_FORMAT = REVLOGV1
72 REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS
73 REVLOGV1_FLAGS = FLAG_INLINE_DATA | FLAG_GENERALDELTA
74 REVLOGV2_FLAGS = REVLOGV1_FLAGS
75
76 # revlog index flags
77 REVIDX_ISCENSORED = (1 << 15) # revision has censor metadata, must be verified
78 REVIDX_ELLIPSIS = (1 << 14) # revision hash does not match data (narrowhg)
79 REVIDX_EXTSTORED = (1 << 13) # revision data is stored externally
80 REVIDX_DEFAULT_FLAGS = 0
81 # stable order in which flags need to be processed and their processors applied
82 REVIDX_FLAGS_ORDER = [
83 REVIDX_ISCENSORED,
84 REVIDX_ELLIPSIS,
85 REVIDX_EXTSTORED,
86 ]
87 REVIDX_KNOWN_FLAGS = util.bitsfrom(REVIDX_FLAGS_ORDER)
88 # bitmark for flags that could cause rawdata content change
89 REVIDX_RAWTEXT_CHANGING_FLAGS = REVIDX_ISCENSORED | REVIDX_EXTSTORED
90
91 # max size of revlog with inline data
102 # max size of revlog with inline data
92 _maxinline = 131072
103 _maxinline = 131072
93 _chunksize = 1048576
104 _chunksize = 1048576
@@ -854,9 +865,6 b' class revlogoldindex(list):'
854 return (0, 0, 0, -1, -1, -1, -1, nullid)
865 return (0, 0, 0, -1, -1, -1, -1, nullid)
855 return list.__getitem__(self, i)
866 return list.__getitem__(self, i)
856
867
857 # maximum <delta-chain-data>/<revision-text-length> ratio
858 LIMIT_DELTA2TEXT = 2
859
860 class revlogoldio(object):
868 class revlogoldio(object):
861 def __init__(self):
869 def __init__(self):
862 self.size = indexformatv0.size
870 self.size = indexformatv0.size
@@ -817,6 +817,7 b" packages = ['mercurial',"
817 'mercurial.thirdparty.zope',
817 'mercurial.thirdparty.zope',
818 'mercurial.thirdparty.zope.interface',
818 'mercurial.thirdparty.zope.interface',
819 'mercurial.utils',
819 'mercurial.utils',
820 'mercurial.revlogutils',
820 'hgext', 'hgext.convert', 'hgext.fsmonitor',
821 'hgext', 'hgext.convert', 'hgext.fsmonitor',
821 'hgext.fastannotate',
822 'hgext.fastannotate',
822 'hgext.fsmonitor.pywatchman',
823 'hgext.fsmonitor.pywatchman',
General Comments 0
You need to be logged in to leave comments. Login now