Commits

Brendan Cully committed 6867b01

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.

  • Participants
  • Parent commits b8eeabb

Comments (0)

Files changed (1)

File hggit/__init__.py

     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}
                 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: