comparison mercurial/revlog.py @ 49248:2bcf5e14bb7e

deltas: add a `debug.revlog.debug-delta` config option enable output This provide a way to enable the code introduced in the previous changeset. This will provide a large amount of output when applying a bundle with details about each delta "computation".
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 19 May 2022 23:39:42 +0100
parents 5b65721a75eb
children 31602d471b60
comparison
equal deleted inserted replaced
49247:e6b7c6fbeb48 49248:2bcf5e14bb7e
344 self._chunkcache = (0, b'') 344 self._chunkcache = (0, b'')
345 # How much data to read and cache into the raw revlog data cache. 345 # How much data to read and cache into the raw revlog data cache.
346 self._chunkcachesize = 65536 346 self._chunkcachesize = 65536
347 self._maxchainlen = None 347 self._maxchainlen = None
348 self._deltabothparents = True 348 self._deltabothparents = True
349 self._debug_delta = False
349 self.index = None 350 self.index = None
350 self._docket = None 351 self._docket = None
351 self._nodemap_docket = None 352 self._nodemap_docket = None
352 # Mapping of partial identifiers to full nodes. 353 # Mapping of partial identifiers to full nodes.
353 self._pcache = {} 354 self._pcache = {}
421 self._deltabothparents = opts[b'deltabothparents'] 422 self._deltabothparents = opts[b'deltabothparents']
422 self._lazydelta = bool(opts.get(b'lazydelta', True)) 423 self._lazydelta = bool(opts.get(b'lazydelta', True))
423 self._lazydeltabase = False 424 self._lazydeltabase = False
424 if self._lazydelta: 425 if self._lazydelta:
425 self._lazydeltabase = bool(opts.get(b'lazydeltabase', False)) 426 self._lazydeltabase = bool(opts.get(b'lazydeltabase', False))
427 if b'debug-delta' in opts:
428 self._debug_delta = opts[b'debug-delta']
426 if b'compengine' in opts: 429 if b'compengine' in opts:
427 self._compengine = opts[b'compengine'] 430 self._compengine = opts[b'compengine']
428 if b'zlib.level' in opts: 431 if b'zlib.level' in opts:
429 self._compengineopts[b'zlib.level'] = opts[b'zlib.level'] 432 self._compengineopts[b'zlib.level'] = opts[b'zlib.level']
430 if b'zstd.level' in opts: 433 if b'zstd.level' in opts:
2424 ) 2427 )
2425 else: 2428 else:
2426 textlen = len(rawtext) 2429 textlen = len(rawtext)
2427 2430
2428 if deltacomputer is None: 2431 if deltacomputer is None:
2429 deltacomputer = deltautil.deltacomputer(self) 2432 write_debug = None
2433 if self._debug_delta:
2434 write_debug = transaction._report
2435 deltacomputer = deltautil.deltacomputer(
2436 self, write_debug=write_debug
2437 )
2430 2438
2431 revinfo = revlogutils.revisioninfo( 2439 revinfo = revlogutils.revisioninfo(
2432 node, 2440 node,
2433 p1, 2441 p1,
2434 p2, 2442 p2,
2637 2645
2638 self._adding_group = True 2646 self._adding_group = True
2639 empty = True 2647 empty = True
2640 try: 2648 try:
2641 with self._writing(transaction): 2649 with self._writing(transaction):
2642 deltacomputer = deltautil.deltacomputer(self) 2650 write_debug = None
2651 if self._debug_delta:
2652 write_debug = transaction._report
2653 deltacomputer = deltautil.deltacomputer(
2654 self,
2655 write_debug=write_debug,
2656 )
2643 # loop through our set of deltas 2657 # loop through our set of deltas
2644 for data in deltas: 2658 for data in deltas:
2645 ( 2659 (
2646 node, 2660 node,
2647 p1, 2661 p1,
3013 deltareuse, 3027 deltareuse,
3014 forcedeltabothparents, 3028 forcedeltabothparents,
3015 sidedata_helpers, 3029 sidedata_helpers,
3016 ): 3030 ):
3017 """perform the core duty of `revlog.clone` after parameter processing""" 3031 """perform the core duty of `revlog.clone` after parameter processing"""
3018 deltacomputer = deltautil.deltacomputer(destrevlog) 3032 write_debug = None
3033 if self._debug_delta:
3034 write_debug = tr._report
3035 deltacomputer = deltautil.deltacomputer(
3036 destrevlog,
3037 write_debug=write_debug,
3038 )
3019 index = self.index 3039 index = self.index
3020 for rev in self: 3040 for rev in self:
3021 entry = index[rev] 3041 entry = index[rev]
3022 3042
3023 # Some classes override linkrev to take filtered revs into 3043 # Some classes override linkrev to take filtered revs into