(Arne Babenhauserheide)
2012-06-26: have to wrap discovery.findcommonoutgoing to make this work with have to wrap discovery.findcommonoutgoing to make this work with paths in .hg/hgrc
diff --git a/staticsite.py b/staticsite.py --- a/staticsite.py +++ b/staticsite.py @@ -710,16 +710,21 @@ wrapcmds = { # cmd: generic, target, fix ## Explicitely wrap functions to change local commands in case the remote repo is an FTP repo. See mercurial.extensions for more information. # Get the module which holds the functions to wrap -#from mercurial import discovery # the new function: gets the original function as first argument and the originals args and kwds. -#def findcommonoutgoing(orig, *args, **opts): -# capable = getattr(args[1], 'capable', lambda x: False) -# if capable('ftp'): -# return []#orig(*args, **opts) -# else: -# return orig(*args, **opts) -# really wrap the function -#extensions.wrapfunction(discovery, 'findcommonoutgoing', findcommonoutgoing) +def findcommonoutgoing(orig, *args, **opts): + repo = args[1] + capable = getattr(repo, 'capable', lambda x: False) + if capable('ftp'): + class fakeoutgoing(object): + def __init__(self): + self.excluded = [] + self.missing = [] + self.commonheads = [] + return fakeoutgoing() + else: + return orig(*args, **opts) +# really wrap the functions +extensions.wrapfunction(discovery, 'findcommonoutgoing', findcommonoutgoing) # explicitely wrap commands in case the remote repo is an FTP repo. def ftppush(orig, *args, **opts): @@ -785,7 +790,8 @@ class FTPRepository(repo.repository): Whenever this function is hit, we abort. The traceback is useful for figuring out where to intercept the functionality. """ - raise util.Abort('command heads unavailable for FTP repositories') + return [] + #raise util.Abort('command heads unavailable for FTP repositories') def pushkey(self, namespace, key, old, new): return False