diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -502,16 +502,9 @@ class headerlessfixup(object): class cg1packer(object): deltaheader = _CHANGEGROUPV1_DELTA_HEADER version = '01' - def __init__(self, repo, bundlecaps=None): + def __init__(self, repo): """Given a source repo, construct a bundler. - - bundlecaps is optional and can be used to specify the set of - capabilities which can be used to build the bundle. """ - # Set of capabilities we can use to build the bundle. - if bundlecaps is None: - bundlecaps = set() - self._bundlecaps = bundlecaps # experimental config: bundle.reorder reorder = repo.ui.config('bundle', 'reorder', 'auto') if reorder == 'auto': @@ -815,8 +808,8 @@ class cg2packer(cg1packer): version = '02' deltaheader = _CHANGEGROUPV2_DELTA_HEADER - def __init__(self, repo, bundlecaps=None): - super(cg2packer, self).__init__(repo, bundlecaps) + def __init__(self, repo): + super(cg2packer, self).__init__(repo) if self._reorder is None: # Since generaldelta is directly supported by cg2, reordering # generally doesn't help, so we disable it by default (treating @@ -910,9 +903,9 @@ def safeversion(repo): assert versions return min(versions) -def getbundler(version, repo, bundlecaps=None): +def getbundler(version, repo): assert version in supportedoutgoingversions(repo) - return _packermap[version][0](repo, bundlecaps) + return _packermap[version][0](repo) def getunbundler(version, fh, alg, extras=None): return _packermap[version][1](fh, alg, extras=extras) @@ -963,30 +956,27 @@ def changegroupsubset(repo, roots, heads bundler = getbundler(version, repo) return getsubset(repo, outgoing, bundler, source) -def getlocalchangegroupraw(repo, source, outgoing, bundlecaps=None, - version='01'): +def getlocalchangegroupraw(repo, source, outgoing, version='01'): """Like getbundle, but taking a discovery.outgoing as an argument. This is only implemented for local repos and reuses potentially precomputed sets in outgoing. Returns a raw changegroup generator.""" if not outgoing.missing: return None - bundler = getbundler(version, repo, bundlecaps) + bundler = getbundler(version, repo) return getsubsetraw(repo, outgoing, bundler, source) -def getlocalchangegroup(repo, source, outgoing, bundlecaps=None, - version='01'): +def getlocalchangegroup(repo, source, outgoing, version='01'): """Like getbundle, but taking a discovery.outgoing as an argument. This is only implemented for local repos and reuses potentially precomputed sets in outgoing.""" if not outgoing.missing: return None - bundler = getbundler(version, repo, bundlecaps) + bundler = getbundler(version, repo) return getsubset(repo, outgoing, bundler, source) -def getchangegroup(repo, source, outgoing, bundlecaps=None, - version='01'): +def getchangegroup(repo, source, outgoing, version='01'): """Like changegroupsubset, but returns the set difference between the ancestors of heads and the ancestors common. @@ -995,8 +985,7 @@ def getchangegroup(repo, source, outgoin The nodes in common might not all be known locally due to the way the current discovery protocol works. """ - return getlocalchangegroup(repo, source, outgoing, bundlecaps=bundlecaps, - version=version) + return getlocalchangegroup(repo, source, outgoing, version=version) def changegroup(repo, basenodes, source): # to avoid a race we use changegroupsubset() (issue1320) diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1346,8 +1346,6 @@ def bundle(ui, repo, fname, dest=None, * base = ['null'] else: base = scmutil.revrange(repo, opts.get('base')) - # TODO: get desired bundlecaps from command line. - bundlecaps = None if cgversion not in changegroup.supportedoutgoingversions(repo): raise error.Abort(_("repository does not support bundle version %s") % cgversion) @@ -1360,7 +1358,6 @@ def bundle(ui, repo, fname, dest=None, * heads = revs and map(repo.lookup, revs) or None outgoing = discovery.outgoing(repo, common, heads) cg = changegroup.getchangegroup(repo, 'bundle', outgoing, - bundlecaps=bundlecaps, version=cgversion) outgoing = None else: @@ -1374,7 +1371,7 @@ def bundle(ui, repo, fname, dest=None, * force=opts.get('force'), portable=True) cg = changegroup.getlocalchangegroup(repo, 'bundle', outgoing, - bundlecaps, version=cgversion) + version=cgversion) if not cg: scmutil.nochangesfound(ui, repo, outgoing and outgoing.excluded) return 1 diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -938,22 +938,19 @@ def _pushchangeset(pushop): pushop.repo.prepushoutgoinghooks(pushop) outgoing = pushop.outgoing unbundle = pushop.remote.capable('unbundle') - # TODO: get bundlecaps from remote - bundlecaps = None # create a changegroup from local if pushop.revs is None and not (outgoing.excluded or pushop.repo.changelog.filteredrevs): # push everything, # use the fast path, no race possible on push - bundler = changegroup.cg1packer(pushop.repo, bundlecaps) + bundler = changegroup.cg1packer(pushop.repo) cg = changegroup.getsubset(pushop.repo, outgoing, bundler, 'push', fastpath=True) else: - cg = changegroup.getlocalchangegroup(pushop.repo, 'push', outgoing, - bundlecaps) + cg = changegroup.getlocalchangegroup(pushop.repo, 'push', outgoing) # apply changegroup to remote if unbundle: @@ -1578,7 +1575,7 @@ def getbundlechunks(repo, source, heads= raise ValueError(_('unsupported getbundle arguments: %s') % ', '.join(sorted(kwargs.keys()))) outgoing = _computeoutgoing(repo, heads, common) - bundler = changegroup.getbundler('01', repo, bundlecaps) + bundler = changegroup.getbundler('01', repo) return changegroup.getsubsetraw(repo, outgoing, bundler, source) # bundle20 case @@ -1616,7 +1613,6 @@ def _getbundlechangegrouppart(bundler, r version = max(cgversions) outgoing = _computeoutgoing(repo, heads, common) cg = changegroup.getlocalchangegroupraw(repo, source, outgoing, - bundlecaps=bundlecaps, version=version) if cg: diff --git a/tests/test-bundle2-format.t b/tests/test-bundle2-format.t --- a/tests/test-bundle2-format.t +++ b/tests/test-bundle2-format.t @@ -113,7 +113,7 @@ Create an extension to test bundle2 API > headmissing = [c.node() for c in repo.set('heads(%ld)', revs)] > headcommon = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)] > outgoing = discovery.outgoing(repo, headcommon, headmissing) - > cg = changegroup.getlocalchangegroup(repo, 'test:bundle2', outgoing, None) + > cg = changegroup.getlocalchangegroup(repo, 'test:bundle2', outgoing) > bundler.newpart('changegroup', data=cg.getchunks(), > mandatory=False) > diff --git a/tests/test-bundle2-multiple-changegroups.t b/tests/test-bundle2-multiple-changegroups.t --- a/tests/test-bundle2-multiple-changegroups.t +++ b/tests/test-bundle2-multiple-changegroups.t @@ -13,13 +13,11 @@ Create an extension to test bundle2 with > # in 'heads' as intermediate heads for the first changegroup. > intermediates = [repo[r].p1().node() for r in heads] > outgoing = discovery.outgoing(repo, common, intermediates) - > cg = changegroup.getchangegroup(repo, source, outgoing, - > bundlecaps=bundlecaps) + > cg = changegroup.getchangegroup(repo, source, outgoing) > bundler.newpart('output', data='changegroup1') > bundler.newpart('changegroup', data=cg.getchunks()) > outgoing = discovery.outgoing(repo, common + intermediates, heads) - > cg = changegroup.getchangegroup(repo, source, outgoing, - > bundlecaps=bundlecaps) + > cg = changegroup.getchangegroup(repo, source, outgoing) > bundler.newpart('output', data='changegroup2') > bundler.newpart('changegroup', data=cg.getchunks()) >