(Arne Babenhauserheide)
2012-08-11: also show all outgoing changesets for all repo types except FTP. getincomingfromanyalso show all outgoing changesets for all repo types except FTP.
diff --git a/staticsite.py b/staticsite.py
--- a/staticsite.py
+++ b/staticsite.py
@@ -141,7 +141,7 @@ def writeoverview(ui, repo, target, name
overview += "<a href='" + getforkdir(target, forkname) + "'>" + forkname + "</a> "
incoming, fn, localother = getincoming(ui, repo, otheruri=forkuri, othername=forkname)
overview += "<small>(" + str(len(incoming))
- outgoing, fn = getoutgoing(ui, repo, forkuri)
+ outgoing, fn, localother = getoutgoing(ui, repo, otheruri=forkuri, othername=forkname)
overview += "<small>↓↑</small>" + str(len(outgoing)) + ")</small> "
overview += "</p>"
@@ -284,7 +284,7 @@ def getlocalother(repo, ui, otheruri, ot
def getincoming(ui, repo, otheruri, other=None, othername=None):
# cannot do that for ftp repos, yet
- if otheruri.startswith("ftp://"):# or otheruri.startswith("freenet://"):
+ if otheruri.startswith("ftp://"):
chlist = []
def cleanupfn():
pass
@@ -308,28 +308,33 @@ def getincoming(ui, repo, otheruri, othe
ui.popbuffer()
return chlist, cleanupfn, other
-def getoutgoing(ui, repo, otheruri, other=None):
+def getoutgoing(ui, repo, otheruri, other=None, othername=None):
# cannot do that for ftp repos, yet
- if otheruri.startswith("ftp://") or otheruri.startswith("freenet://"):
+ if otheruri.startswith("ftp://"):
chlist = []
def cleanupfn():
pass
- return chlist, cleanupfn
+ return chlist, cleanupfn, other
+
if not other:
other = hg.peer(repo, {}, otheruri)
other.ui.pushbuffer() # ignore ui events
source, branches = hg.parseurl(repo.root, None)
- revs, checkout = hg.addbranchrevs(other, repo, branches, None)
- if revs:
- revs = [repo.lookup(rev) for rev in revs]
try: # FIXME: This breaks on http repos!
+ revs, checkout = hg.addbranchrevs(other, repo, branches, None)
+ if revs:
+ revs = [repo.lookup(rev) for rev in revs]
other, chlist, cleanupfn = hg.bundlerepo.getremotechanges(ui, other, repo,
revs, False, False)
- except AttributeError:
- chlist = []
- def cleanupfn():
- pass
- return chlist, cleanupfn
+ 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, chlist, cleanupfn = hg.bundlerepo.getremotechanges(ui, other, repo,
+ revs, False, False)
+ return chlist, cleanupfn, other
def getforkinfo(ui, target):
@@ -372,7 +377,7 @@ def getforkdata(ui, repo, target, name,
# add outgoing commits
html += "<div id='outgoing'><h2>Outgoing commits</h2>"
- chlist, cleanupfn = getoutgoing(ui, repo, forkuri, other=other)
+ chlist, cleanupfn, localother = getoutgoing(ui, repo, forkuri, other=other, othername=forkname)
ui.pushbuffer()
for ch in chlist: