hg site extension
 
(Arne Babenhauserheide)
2012-10-28: First version which works with Mercurial 2.4-rc

First version which works with Mercurial 2.4-rc

diff --git a/staticsite.py b/staticsite.py
--- a/staticsite.py
+++ b/staticsite.py
@@ -311,18 +311,20 @@ def getincoming(ui, repo, otheruri, othe
     return chlist, cleanupfn, other
 
 def getoutgoing(ui, repo, otheruri, other=None, othername=None):
+    def cleanupfn():
+        """non-operation cleanup function (default)."""
+        pass
     # cannot do that for ftp or freenet repos
     isftpuri = otheruri.startswith("ftp://")
     isfreenetpriv = "AQECAAE/" in otheruri
     if isftpuri or isfreenetpriv:
         chlist = []
-        def cleanupfn():
-            pass
         return chlist, cleanupfn, other
 
     if not other: 
         other = hg.peer(repo, {}, otheruri)
     other.ui.pushbuffer() # ignore ui events
+    from mercurial import discovery
     source, branches = hg.parseurl(repo.root, None)
     try: 
         revs, checkout = hg.addbranchrevs(other, repo, branches, None)
@@ -331,13 +333,21 @@ def getoutgoing(ui, repo, otheruri, othe
         other, chlist, cleanupfn = hg.bundlerepo.getremotechanges(ui, other, repo,
                                                                revs, False, False)
     except (AttributeError, util.Abort):
+        other.ui.popbuffer()
         other = getlocalother(repo, ui, otheruri, othername)
-        revs, checkout = hg.addbranchrevs(other, repo, branches, None)
-        if revs:
-            revs = [repo.lookup(rev) for rev in revs]
+        other.ui.pushbuffer()
+
+        fco = discovery.findcommonoutgoing
+        og = fco(repo, other, force=True)
+        chlist = og.missing
+
+        #revs, checkout = hg.addbranchrevs(other, repo, branches, None)
+        #if revs:
+        #    revs = [repo.lookup(rev) for rev in revs]
+        #
+        #other, chlist, cleanupfn = hg.localrepo.getremotechanges(ui, other, repo,
+        #                                                       revs, False, False)
         
-        other, chlist, cleanupfn = hg.bundlerepo.getremotechanges(ui, other, repo,
-                                                               revs, False, False)
     other.ui.popbuffer()
     return chlist, cleanupfn, other