Mercurial > hg-stable
comparison mercurial/revlog.py @ 14251:258fbccf22f5
revlog: remove the last bits of punched/shallow
Most of it was removed in e7483ec3c374, but a few pieces were accidentally
left behind.
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Sat, 07 May 2011 22:37:40 +0200 |
parents | c33427080671 |
children | 19067884c5f5 |
comparison
equal
deleted
inserted
replaced
14250:34ec9b313638 | 14251:258fbccf22f5 |
---|---|
25 | 25 |
26 # revlog header flags | 26 # revlog header flags |
27 REVLOGV0 = 0 | 27 REVLOGV0 = 0 |
28 REVLOGNG = 1 | 28 REVLOGNG = 1 |
29 REVLOGNGINLINEDATA = (1 << 16) | 29 REVLOGNGINLINEDATA = (1 << 16) |
30 REVLOGSHALLOW = (1 << 17) | |
31 REVLOG_DEFAULT_FLAGS = REVLOGNGINLINEDATA | 30 REVLOG_DEFAULT_FLAGS = REVLOGNGINLINEDATA |
32 REVLOG_DEFAULT_FORMAT = REVLOGNG | 31 REVLOG_DEFAULT_FORMAT = REVLOGNG |
33 REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS | 32 REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS |
34 REVLOGNG_FLAGS = REVLOGNGINLINEDATA | REVLOGSHALLOW | 33 REVLOGNG_FLAGS = REVLOGNGINLINEDATA |
35 | 34 |
36 # revlog index flags | 35 # revlog index flags |
37 REVIDX_KNOWN_FLAGS = 0 | 36 REVIDX_KNOWN_FLAGS = 0 |
38 | 37 |
39 # max size of revlog with inline data | 38 # max size of revlog with inline data |
205 Both pieces of the revlog are written to in an append-only | 204 Both pieces of the revlog are written to in an append-only |
206 fashion, which means we never need to rewrite a file to insert or | 205 fashion, which means we never need to rewrite a file to insert or |
207 remove data, and can use some simple techniques to avoid the need | 206 remove data, and can use some simple techniques to avoid the need |
208 for locking while reading. | 207 for locking while reading. |
209 """ | 208 """ |
210 def __init__(self, opener, indexfile, shallowroot=None): | 209 def __init__(self, opener, indexfile): |
211 """ | 210 """ |
212 create a revlog object | 211 create a revlog object |
213 | 212 |
214 opener is a function that abstracts the file opening operation | 213 opener is a function that abstracts the file opening operation |
215 and can be used to implement COW semantics or the like. | 214 and can be used to implement COW semantics or the like. |
218 self.datafile = indexfile[:-2] + ".d" | 217 self.datafile = indexfile[:-2] + ".d" |
219 self.opener = opener | 218 self.opener = opener |
220 self._cache = None | 219 self._cache = None |
221 self._chunkcache = (0, '') | 220 self._chunkcache = (0, '') |
222 self.index = [] | 221 self.index = [] |
223 self._shallowroot = shallowroot | |
224 self._pcache = {} | 222 self._pcache = {} |
225 self._nodecache = {nullid: nullrev} | 223 self._nodecache = {nullid: nullrev} |
226 self._nodepos = None | 224 self._nodepos = None |
227 | 225 |
228 v = REVLOG_DEFAULT_VERSION | 226 v = REVLOG_DEFAULT_VERSION |
229 if hasattr(opener, 'options') and 'defversion' in opener.options: | 227 if hasattr(opener, 'options') and 'defversion' in opener.options: |
230 v = opener.options['defversion'] | 228 v = opener.options['defversion'] |
231 if v & REVLOGNG: | 229 if v & REVLOGNG: |
232 v |= REVLOGNGINLINEDATA | 230 v |= REVLOGNGINLINEDATA |
233 | |
234 if shallowroot: | |
235 v |= REVLOGSHALLOW | |
236 | 231 |
237 i = '' | 232 i = '' |
238 try: | 233 try: |
239 f = self.opener(self.indexfile) | 234 f = self.opener(self.indexfile) |
240 i = f.read() | 235 i = f.read() |
245 if inst.errno != errno.ENOENT: | 240 if inst.errno != errno.ENOENT: |
246 raise | 241 raise |
247 | 242 |
248 self.version = v | 243 self.version = v |
249 self._inline = v & REVLOGNGINLINEDATA | 244 self._inline = v & REVLOGNGINLINEDATA |
250 self._shallow = v & REVLOGSHALLOW | |
251 flags = v & ~0xFFFF | 245 flags = v & ~0xFFFF |
252 fmt = v & 0xFFFF | 246 fmt = v & 0xFFFF |
253 if fmt == REVLOGV0 and flags: | 247 if fmt == REVLOGV0 and flags: |
254 raise RevlogError(_("index %s unknown flags %#04x for format v0") | 248 raise RevlogError(_("index %s unknown flags %#04x for format v0") |
255 % (self.indexfile, flags >> 16)) | 249 % (self.indexfile, flags >> 16)) |