Mercurial > hg > hg-git
changeset 351:dd90394cd13b
findoutgoing: update wrapper for hg change 98c874a929f1
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Fri, 30 Jul 2010 17:24:28 -0500 |
parents | 4d8072162035 |
children | 7a9d1cc30d61 428c819f3135 |
files | hggit/__init__.py |
diffstat | 1 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/__init__.py +++ b/hggit/__init__.py @@ -15,6 +15,7 @@ Try hg clone git:// or hg clone git+ssh:// ''' +import inspect import os from mercurial import commands @@ -105,14 +106,23 @@ try: from mercurial import discovery - def findoutgoing(orig, local, remote, base=None, heads=None, force=False): + kwname = 'heads' + if 'remoteheads' in inspect.getargspec(discovery.findoutgoing)[0]: + kwname = 'remoteheads' + def findoutgoing(orig, local, remote, base=None, remoteheads=None, force=False, heads=None): + kw = {'force': force, 'base': base, kwname: locals()[kwname]} if isinstance(remote, gitrepo.gitrepo): + # clean up this cruft when we're 1.7-only, remoteheads and + # the return value change happened between 1.6 and 1.7. git = GitHandler(local, local.ui) base, heads = git.get_refs(remote.path) - r = orig(local, remote, base=base, heads=heads, - force=force) - return [x[0] for x in r] - return orig(local, remote, base=base, heads=heads, force=force) + newkw = {'base': base, kwname: heads} + newkw.update(kw) + kw = newkw + if kwname == 'heads': + r = orig(local, remote, **kw) + return [x[0] for x in r] + return orig(local, remote, **kw) extensions.wrapfunction(discovery, 'findoutgoing', findoutgoing) except ImportError: pass