changeset 14360:ab687820c4cc stable

subrepo: respect non-default path for incoming/outgoing Push and pull set repo._subtoppath before pushing or pulling subrepos. The incoming and outgoing commands needed to do the same.
author Martin Geisler <mg@aragost.com>
date Wed, 18 May 2011 15:13:26 +0200
parents 02a5bebd0dc4
children ea7081645987 bd23d5f28bbb 34f502851ff8
files mercurial/commands.py tests/test-subrepo.t
diffstat 2 files changed, 33 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Wed May 18 09:31:19 2011 +0200
+++ b/mercurial/commands.py	Wed May 18 15:13:26 2011 +0200
@@ -2516,8 +2516,13 @@
         ui.status(_('comparing with %s\n') % url.hidepassword(source))
         return bookmarks.diff(ui, repo, other)
 
-    ret = hg.incoming(ui, repo, source, opts)
-    return ret
+    repo._subtoppath = ui.expandpath(source)
+    try:
+        ret = hg.incoming(ui, repo, source, opts)
+        return ret
+    finally:
+        del repo._subtoppath
+
 
 def init(ui, dest=".", **opts):
     """create a new repository in the given directory
@@ -2803,8 +2808,12 @@
         ui.status(_('comparing with %s\n') % url.hidepassword(dest))
         return bookmarks.diff(ui, other, repo)
 
-    ret = hg.outgoing(ui, repo, dest, opts)
-    return ret
+    repo._subtoppath = ui.expandpath(dest or 'default-push', dest or 'default')
+    try:
+        ret = hg.outgoing(ui, repo, dest, opts)
+        return ret
+    finally:
+        del repo._subtoppath
 
 def parents(ui, repo, file_=None, **opts):
     """show the parents of the working directory or revision
--- a/tests/test-subrepo.t	Wed May 18 09:31:19 2011 +0200
+++ b/tests/test-subrepo.t	Wed May 18 15:13:26 2011 +0200
@@ -660,6 +660,26 @@
   adding file changes
   added 1 changesets with 1 changes to 1 files
 
+Incoming and outgoing should not use the default path:
+
+  $ hg clone -q issue1852a issue1852d
+  $ hg -R issue1852d outgoing --subrepos issue1852c
+  comparing with issue1852c
+  searching for changes
+  no changes found
+  comparing with issue1852c/sub/repo
+  searching for changes
+  no changes found
+  [1]
+  $ hg -R issue1852d incoming --subrepos issue1852c
+  comparing with issue1852c
+  searching for changes
+  no changes found
+  comparing with issue1852c/sub/repo
+  searching for changes
+  no changes found
+  [1]
+
 Check status of files when none of them belong to the first
 subrepository: