summaryrefslogtreecommitdiff
path: root/hg.py
diff options
context:
space:
mode:
authorSylvain Th?nault <sylvain.thenault@logilab.fr>2011-01-10 15:01:57 +0100
committerSylvain Th?nault <sylvain.thenault@logilab.fr>2011-01-10 15:01:57 +0100
commit724f82e27e4995148788085c296c0a1d6e7012ef (patch)
tree84fb6cce9beb3b4c15bd73b10799782ec569e6af /hg.py
parentd25f92acfb4840cfa6f41e40d58f915d32d717fc (diff)
downloadlogilab-common-724f82e27e4995148788085c296c0a1d6e7012ef.tar.gz
[mercurial] make incoming function works with non-local repository
Diffstat (limited to 'hg.py')
-rw-r--r--hg.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/hg.py b/hg.py
index 0538a38..6a115bc 100644
--- a/hg.py
+++ b/hg.py
@@ -107,6 +107,17 @@ def incoming(wdrepo, masterrepo):
revs, checkout = hg.addbranchrevs(wdrepo, masterrepo, ('', []), None)
common, incoming, rheads = discovery.findcommonincoming(
wdrepo, masterrepo, heads=revs)
+ if masterrepo.local():
+ from mercurial import bundlerepo
+ if revs is None and masterrepo.capable('changegroupsubset'):
+ revs = rheads
+ if revs is None:
+ cg = masterrepo.changegroup(incoming, "incoming")
+ else:
+ cg = masterrepo.changegroupsubset(incoming, revs, 'incoming')
+ fname = changegroup.writebundle(cg, None, "HG10UN")
+ # use the created uncompressed bundlerepo
+ masterrepo = bundlerepo.bundlerepository(ui, repo.root, fname)
return masterrepo.changelog.nodesbetween(incoming, revs)[0]
def outgoing(wdrepo, masterrepo):