comparison mercurial/changegroup.py @ 40497:968dd7e02ac5

changegroup: allow to force delta to be against p1 This new developer option is useful to general more "generic" bundle. Without this option, a bundle generated from the repository use deltas similar to the one stored in the specific repository it was generated from. This makes performance testing a bit tricky. Using deltas similar to the final result means all delta stored in the bundle can be applied to the target repository without any further processing (except for the rare case of a full snapshot). The application of such bundles (almost) never exercises the (slower) path of searching for a new valid delta. This result in unrealistic and too favorable timing and profile. Instead, we introduce an option to make sure all revisions are stored as a delta against p1. It might not be the best generation option, but it guarantees that the content will be "generic", not favoring a specific target.
author Boris Feld <boris.feld@octobus.net>
date Wed, 10 Oct 2018 00:21:02 +0200
parents 6a917075535a
children 808b762679cd
comparison
equal deleted inserted replaced
40496:6a917075535a 40497:968dd7e02ac5
695 progress = None 695 progress = None
696 if topic is not None: 696 if topic is not None:
697 progress = repo.ui.makeprogress(topic, unit=_('chunks'), 697 progress = repo.ui.makeprogress(topic, unit=_('chunks'),
698 total=len(nodes)) 698 total=len(nodes))
699 699
700 configtarget = repo.ui.config('devel', 'bundle.delta')
701 if configtarget not in ('', 'p1'):
702 msg = _("""config "devel.bundle.delta" as unknown value: %s""")
703 repo.ui.warn(msg % configtarget)
704
700 deltamode = repository.CG_DELTAMODE_STD 705 deltamode = repository.CG_DELTAMODE_STD
701 if forcedeltaparentprev: 706 if forcedeltaparentprev:
702 deltamode = repository.CG_DELTAMODE_PREV 707 deltamode = repository.CG_DELTAMODE_PREV
708 elif configtarget == 'p1':
709 deltamode = repository.CG_DELTAMODE_P1
703 710
704 revisions = store.emitrevisions( 711 revisions = store.emitrevisions(
705 nodes, 712 nodes,
706 nodesorder=nodesorder, 713 nodesorder=nodesorder,
707 revisiondata=True, 714 revisiondata=True,