[PATCH] revlog: parentdelta flags for revlog index
in3xes at gmail.com
in3xes at gmail.com
Mon Aug 9 15:14:21 UTC 2010
# HG changeset patch
# User Pradeepkumar Gayam <in3xes at gmail.com>
# Date 1281366194 -19800
# Node ID 127044ace0a8bcc4412d5b4b74c6e5b9d189356c
# Parent 05deba16c5d571e244364accbde31268008b2e3c
revlog: parentdelta flags for revlog index
diff -r 05deba16c5d5 -r 127044ace0a8 mercurial/revlog.py
--- a/mercurial/revlog.py Fri Aug 06 12:59:13 2010 -0500
+++ b/mercurial/revlog.py Mon Aug 09 20:33:14 2010 +0530
@@ -28,14 +28,16 @@
REVLOGNG = 1
REVLOGNGINLINEDATA = (1 << 16)
REVLOGSHALLOW = (1 << 17)
+REVLOGPARENTDELTA = (1 << 18)
REVLOG_DEFAULT_FLAGS = REVLOGNGINLINEDATA
REVLOG_DEFAULT_FORMAT = REVLOGNG
REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS
-REVLOGNG_FLAGS = REVLOGNGINLINEDATA | REVLOGSHALLOW
+REVLOGNG_FLAGS = REVLOGNGINLINEDATA | REVLOGSHALLOW | REVLOGPARENTDELTA
# revlog index flags
+REVIDX_PARENTDELTA = 1
REVIDX_PUNCHED_FLAG = 2
-REVIDX_KNOWN_FLAGS = REVIDX_PUNCHED_FLAG
+REVIDX_KNOWN_FLAGS = REVIDX_PUNCHED_FLAG | REVIDX_PARENTDELTA
# amount of data read unconditionally, should be >= 4
# when not inline: threshold for using lazy index
@@ -441,12 +443,18 @@
self.nodemap = {nullid: nullrev}
self.index = []
self._shallowroot = shallowroot
+ self._parentdelta = 0
+ self._deltachain = 0
v = REVLOG_DEFAULT_VERSION
if hasattr(opener, 'options') and 'defversion' in opener.options:
v = opener.options['defversion']
if v & REVLOGNG:
v |= REVLOGNGINLINEDATA
+ if v & REVLOGNG and 'parentdelta' in opener.options:
+ self._parentdelta = 1
+ v |= REVLOGPARENTDELTA
+
if shallowroot:
v |= REVLOGSHALLOW
@@ -466,6 +474,7 @@
self.version = v
self._inline = v & REVLOGNGINLINEDATA
self._shallow = v & REVLOGSHALLOW
+ self._deltachain = v & REVLOGPARENTDELTA
flags = v & ~0xFFFF
fmt = v & 0xFFFF
if fmt == REVLOGV0 and flags:
More information about the Mercurial-devel
mailing list