# HG changeset patch # User Augie Fackler # Date 1276394123 18000 # Node ID 82bfc96a1311d74f181322ac78a79421a3168b61 # Parent da21c351d93790a0122cdc6c909b9c8e053e6f2f svnrepo: support new discovery module introduced in 3d0591a66118 diff --git a/hgsubversion/__init__.py b/hgsubversion/__init__.py --- a/hgsubversion/__init__.py +++ b/hgsubversion/__init__.py @@ -75,6 +75,20 @@ wrapcmds = { # cmd: generic, target, fix ]), } + +# only need the discovery variant of this code when we drop hg < 1.6 +try: + from mercurial import discovery + def findoutgoing(orig, *args, **opts): + capable = getattr(args[1], 'capable', lambda x: False) + if capable('subversion'): + return wrappers.outgoing(*args, **opts) + else: + return orig(*args, **opts) + extensions.wrapfunction(discovery, 'findoutgoing', findoutgoing) +except ImportError: + pass + def uisetup(ui): """insert command wrappers for a bunch of commands""" docvals = {'extension': 'hgsubversion'} diff --git a/hgsubversion/svnrepo.py b/hgsubversion/svnrepo.py --- a/hgsubversion/svnrepo.py +++ b/hgsubversion/svnrepo.py @@ -36,7 +36,12 @@ def generate_repo_class(ui, repo): Filter for instance methods which require the first argument to be a remote Subversion repository instance. """ - original = getattr(repo, fn.__name__) + original = getattr(repo, fn.__name__, None) + + # remove when dropping support for hg < 1.6. + if original is None and fn.__name__ == 'findoutgoing': + return + def wrapper(self, *args, **opts): capable = getattr(args[0], 'capable', lambda x: False) if capable('subversion'):