# HG changeset patch # User Pierre-Yves David # Date 1429529772 -7200 # Node ID d03583da89c42e20b78c5121f00bcaa6318910db # Parent d001376b0c09217549042656bcb0d1f88728950c pull: fix bundle2 part generation The new part generator (allowing partial pull) was unproperly installed. diff -r d001376b0c09 -r d03583da89c4 hgext/evolve.py --- a/hgext/evolve.py Sat Apr 11 10:35:26 2015 -0400 +++ b/hgext/evolve.py Mon Apr 20 13:36:12 2015 +0200 @@ -2642,20 +2642,28 @@ if getattr(exchange, '_getbundleobsmarkerpart', None) is not None: @eh.wrapfunction(exchange, '_getbundleobsmarkerpart') - def _getbundleobsmarkerpart(orig, bundler, repo, source, heads=None, common=None, - bundlecaps=None, **kwargs): + def _getbundleobsmarkerpart(orig, bundler, repo, source, **kwargs): if 'evo_obscommon' not in kwargs: - return orig(bundler, repo, source, heads, common, bundlecaps, **kwargs) - + return orig(bundler, repo, source, **kwargs) + + heads = kwargs.get('heads') if kwargs.get('obsmarkers', False): if heads is None: heads = repo.heads() obscommon = kwargs.get('evo_obscommon', ()) + assert obscommon obsset = repo.set('::%ln - ::%ln', heads, obscommon) subset = [c.node() for c in obsset] markers = repo.obsstore.relevantmarkers(subset) exchange.buildobsmarkerspart(bundler, markers) + @eh.uisetup + def installgetbundlepartgen(ui): + origfunc = exchange.getbundle2partsmapping['obsmarkers'] + def newfunc(*args, **kwargs): + return _getbundleobsmarkerpart(origfunc, *args, **kwargs) + exchange.getbundle2partsmapping['obsmarkers'] = newfunc + @eh.wrapfunction(exchange, '_pullobsolete') def _pullobsolete(orig, pullop): diff -r d001376b0c09 -r d03583da89c4 hgext/simple4server.py --- a/hgext/simple4server.py Sat Apr 11 10:35:26 2015 -0400 +++ b/hgext/simple4server.py Mon Apr 20 13:36:12 2015 +0200 @@ -255,10 +255,13 @@ caps += ' _evoext_getbundle_obscommon' return caps -def _getbundleobsmarkerpart(orig, bundler, repo, source, heads=None, common=None, - bundlecaps=None, **kwargs): +def _getbundleobsmarkerpart(orig, bundler, repo, source, **kwargs): if 'evo_obscommon' not in kwargs: - return orig(bundler, repo, source, heads, common, bundlecaps, **kwargs) + return orig(bundler, repo, source, **kwargs) + + heads = kwargs.get('heads') + if 'evo_obscommon' not in kwargs: + return orig(bundler, repo, source, **kwargs) if kwargs.get('obsmarkers', False): if heads is None: @@ -284,6 +287,10 @@ wireproto.commands['evoext_pullobsmarkers_0'] = (srv_pullobsmarkers, '*') # wrap module content extensions.wrapfunction(exchange, '_pullbundle2extraprepare', _getbundleobsmarkerpart) + origfunc = exchange.getbundle2partsmapping['obsmarkers'] + def newfunc(*args, **kwargs): + return _getbundleobsmarkerpart(origfunc, *args, **kwargs) + exchange.getbundle2partsmapping['obsmarkers'] = newfunc extensions.wrapfunction(wireproto, 'capabilities', capabilities) # wrap command content oldcap, args = wireproto.commands['capabilities']