--- a/mercurial/bundlerepo.py Wed Mar 23 16:02:11 2011 +0100
+++ b/mercurial/bundlerepo.py Wed Mar 23 16:06:55 2011 +0100
@@ -286,15 +286,17 @@
repopath, bundlename = parentpath, path
return bundlerepository(ui, repopath, bundlename)
-def getremotechanges(ui, repo, other, revs=None, bundlename=None, force=False):
- tmp = discovery.findcommonincoming(repo, other, heads=revs, force=force)
+def getremotechanges(ui, repo, other, revs=None, bundlename=None,
+ force=False, usecommon=False):
+ tmp = discovery.findcommonincoming(repo, other, heads=revs, force=force,
+ commononly=usecommon)
common, incoming, rheads = tmp
if not incoming:
try:
os.unlink(bundlename)
except:
pass
- return other, None, None
+ return other, None, None, None
bundle = None
if bundlename or not other.local():
@@ -303,7 +305,9 @@
if revs is None and other.capable('changegroupsubset'):
revs = rheads
- if revs is None:
+ if usecommon:
+ cg = other.getbundle('incoming', common=common, heads=revs)
+ elif revs is None:
cg = other.changegroup(incoming, "incoming")
else:
cg = other.changegroupsubset(incoming, revs, 'incoming')
@@ -315,5 +319,5 @@
if not other.local():
# use the created uncompressed bundlerepo
other = bundlerepository(ui, repo.root, fname)
- return (other, incoming, bundle)
+ return (other, common, incoming, bundle)