Mercurial > public > mercurial-scm > hg-stable
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, |