equal
deleted
inserted
replaced
81 ) |
81 ) |
82 from .utils import ( |
82 from .utils import ( |
83 storageutil, |
83 storageutil, |
84 stringutil, |
84 stringutil, |
85 ) |
85 ) |
|
86 from .pure import parsers as pureparsers |
86 |
87 |
87 # blanked usage of all the name to prevent pyflakes constraints |
88 # blanked usage of all the name to prevent pyflakes constraints |
88 # We need these name available in the module for extensions. |
89 # We need these name available in the module for extensions. |
89 REVLOGV0 |
90 REVLOGV0 |
90 REVLOGV1 |
91 REVLOGV1 |
357 index, cache = parsers.parse_index2(data, inline) |
358 index, cache = parsers.parse_index2(data, inline) |
358 return index, cache |
359 return index, cache |
359 |
360 |
360 def packentry(self, entry, node, version, rev): |
361 def packentry(self, entry, node, version, rev): |
361 p = indexformatng_pack(*entry) |
362 p = indexformatng_pack(*entry) |
|
363 if rev == 0: |
|
364 p = versionformat_pack(version) + p[4:] |
|
365 return p |
|
366 |
|
367 |
|
368 indexformatv2 = struct.Struct(pureparsers.Index2Mixin.index_format) |
|
369 indexformatv2_pack = indexformatv2.pack |
|
370 |
|
371 |
|
372 class revlogv2io(object): |
|
373 def __init__(self): |
|
374 self.size = indexformatv2.size |
|
375 |
|
376 def parseindex(self, data, inline): |
|
377 index, cache = parsers.parse_index2(data, inline, revlogv2=True) |
|
378 return index, cache |
|
379 |
|
380 def packentry(self, entry, node, version, rev): |
|
381 p = indexformatv2_pack(*entry) |
362 if rev == 0: |
382 if rev == 0: |
363 p = versionformat_pack(version) + p[4:] |
383 p = versionformat_pack(version) + p[4:] |
364 return p |
384 return p |
365 |
385 |
366 |
386 |
648 use_rust_index = self.opener.options.get(b'rust.index') |
668 use_rust_index = self.opener.options.get(b'rust.index') |
649 |
669 |
650 self._io = revlogio() |
670 self._io = revlogio() |
651 if self.version == REVLOGV0: |
671 if self.version == REVLOGV0: |
652 self._io = revlogoldio() |
672 self._io = revlogoldio() |
|
673 elif fmt == REVLOGV2: |
|
674 self._io = revlogv2io() |
653 elif devel_nodemap: |
675 elif devel_nodemap: |
654 self._io = NodemapRevlogIO() |
676 self._io = NodemapRevlogIO() |
655 elif use_rust_index: |
677 elif use_rust_index: |
656 self._io = rustrevlogio() |
678 self._io = rustrevlogio() |
657 try: |
679 try: |
2335 deltainfo.base, |
2357 deltainfo.base, |
2336 link, |
2358 link, |
2337 p1r, |
2359 p1r, |
2338 p2r, |
2360 p2r, |
2339 node, |
2361 node, |
|
2362 0, |
|
2363 0, |
2340 ) |
2364 ) |
|
2365 |
|
2366 if self.version & 0xFFFF != REVLOGV2: |
|
2367 e = e[:8] |
|
2368 |
2341 self.index.append(e) |
2369 self.index.append(e) |
2342 |
2370 |
2343 entry = self._io.packentry(e, self.node, self.version, curr) |
2371 entry = self._io.packentry(e, self.node, self.version, curr) |
2344 self._writeentry( |
2372 self._writeentry( |
2345 transaction, ifh, dfh, entry, deltainfo.data, link, offset |
2373 transaction, ifh, dfh, entry, deltainfo.data, link, offset |