changeset 20020:6fb59247c7d5

transplant: use peer of source repository as "remote" for "repo.pull()" Before this patch, transplant with "--merge" option fails with traceback unexpectedly, if it causes pull from the source repository on the local host. "discovery.findcommonincoming()" invokes "capable()" method on the object given from "localrepository.pull()", but it is "localrepository" object in this case and doesn't have such method. This patch uses peer object of source repository as "remote" argument for "localrepository.pull()" invocation like other invocations of it in transplant.py.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Sat, 16 Nov 2013 23:14:20 +0900
parents edbf7f1fd2a2
children 4830763f825c
files hgext/transplant.py tests/test-transplant.t
diffstat 2 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/transplant.py	Fri Nov 15 22:57:11 2013 -0500
+++ b/hgext/transplant.py	Sat Nov 16 23:14:20 2013 +0900
@@ -154,7 +154,7 @@
                     # transplants before them fail.
                     domerge = True
                     if not hasnode(repo, node):
-                        repo.pull(source, heads=[node])
+                        repo.pull(source.peer(), heads=[node])
 
                 skipmerge = False
                 if parents[1] != revlog.nullid:
--- a/tests/test-transplant.t	Fri Nov 15 22:57:11 2013 -0500
+++ b/tests/test-transplant.t	Sat Nov 16 23:14:20 2013 +0900
@@ -430,6 +430,20 @@
   adding manifests
   adding file changes
   added 4 changesets with 4 changes to 4 files
+
+test "--merge" causing pull from source repository on local host
+
+  $ hg --config extensions.mq= -q strip 2
+  $ hg transplant -s ../t --merge tip
+  searching for changes
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 2 files
+  applying a53251cdf717
+  4:a53251cdf717 merged at 4831f4dc831a
+
   $ cd ..