# HG changeset patch
# User Stanislau Hlebik <st...@fb.com>
# Date 1485791608 28800
#      Mon Jan 30 07:53:28 2017 -0800
# Node ID a7786a178d5cb9abed981c76e47588fffede7511
# Parent  8b66569e49ce6382670497aa4e96c5e81c224439
selectivepull: fix passing `heads` argument multiple times

Usually `heads` are passed using kwargs but sometimes they are passed using
args (for example, during clone). In this case we set in kwargs and args
and orig call fails. This patch fixes it.

Also change the tests to cover this behaviour.

diff --git a/remotenames.py b/remotenames.py
--- a/remotenames.py
+++ b/remotenames.py
@@ -133,6 +133,11 @@
                 bookmarks[bookmark] = remotebookmarks[bookmark]
         else:
             heads = kwargs.get('heads') or []
+            # heads may be passed as positional args
+            if len(args) > 0:
+                if args[0]:
+                    heads = args[0]
+                args = args[1:]
             for bookmark in bookmarks:
                 heads.append(remote.lookup(remotebookmarks[bookmark]))
             kwargs['bookmarks'] = bookmarks
diff --git a/tests/test-selective-pull.t b/tests/test-selective-pull.t
--- a/tests/test-selective-pull.t
+++ b/tests/test-selective-pull.t
@@ -97,7 +97,7 @@
 
 Create second remote
   $ cd ..
-  $ hg clone -q remoterepo secondremoterepo
+  $ hg clone -q ssh://user@dummy/remoterepo secondremoterepo
   $ cd secondremoterepo
   $ hg up -q 0238718db2b1
   $ hg book master
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to