changeset 414:6867b01d1379

Unbreak outgoing to non-git repos with hg pre-1.9 The wrapped version of findoutgoing unconditionally mangled the keyword arguments, but doesn't do version fixups unless the remote is a git repository. This change only mangles the argument list when the remote is a git repository.
author Brendan Cully <brendan@kublai.com>
date Thu, 23 Jun 2011 11:29:30 -0700
parents b8eeabb61c7b
children edaadbd99074
files hggit/__init__.py
diffstat 1 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/hggit/__init__.py	Fri Jun 17 15:01:31 2011 -0500
+++ b/hggit/__init__.py	Thu Jun 23 11:29:30 2011 -0700
@@ -129,13 +129,13 @@
     if getattr(discovery, 'findcommonoutgoing', None):
         kwname = 'onlyheads'
     def findoutgoing(orig, local, remote, *args, **kwargs):
-        kw = {}
-        kw.update(kwargs)
-        for val, k in zip(args, ('base', kwname, 'force')):
-            kw[k] = val
         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.
+            kw = {}
+            kw.update(kwargs)
+            for val, k in zip(args, ('base', kwname, 'force')):
+                kw[k] = val
             git = GitHandler(local, local.ui)
             base, heads = git.get_refs(remote.path)
             newkw = {'base': base, kwname: heads}
@@ -146,7 +146,8 @@
                 return [x[0] for x in r]
             if kwname == 'onlyheads':
                 del kw['base']
-        return orig(local, remote, **kw)
+            return orig(local, remote, **kw)
+        return orig(local, remote, *args, **kwargs)
     if getattr(discovery, 'findoutgoing', None):
         extensions.wrapfunction(discovery, 'findoutgoing', findoutgoing)
     else: