changeset 13126:e76701bf4480

merge default heads in crew and main
author Martin Geisler <mg@lazybytes.net>
date Mon, 13 Dec 2010 11:52:52 +0100
parents bf763946f8b0 (current diff) 4a13ca2c21ce (diff)
children ece1c069ddd6
files mercurial/subrepo.py tests/test-subrepo-relative-path.t
diffstat 2 files changed, 57 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/subrepo.py	Tue Dec 07 16:08:16 2010 +0100
+++ b/mercurial/subrepo.py	Mon Dec 13 11:52:52 2010 +0100
@@ -333,6 +333,8 @@
 
             def addpathconfig(key, value):
                 if value:
+                    if not os.path.isabs(value):
+                        value = os.path.relpath(os.path.abspath(value), root)
                     fp.write('%s = %s\n' % (key, value))
                     self._repo.ui.setconfig('paths', key, value)
 
--- a/tests/test-subrepo-relative-path.t	Tue Dec 07 16:08:16 2010 +0100
+++ b/tests/test-subrepo-relative-path.t	Mon Dec 13 11:52:52 2010 +0100
@@ -67,3 +67,58 @@
    revision 863c1745b441bd97a8c4a096e87793073f4fb215
 
   $ "$TESTDIR/killdaemons.py"
+
+
+Create repo with nested relative subrepos
+
+  $ hg init r1
+  $ hg init r1/sub
+  $ echo sub = sub > r1/.hgsub
+  $ hg add --cwd r1 .hgsub
+  $ hg init r1/sub/subsub
+  $ echo subsub = subsub > r1/sub/.hgsub
+  $ hg add --cwd r1/sub .hgsub
+  $ echo c1 > r1/sub/subsub/f
+  $ hg add --cwd r1/sub/subsub f
+  $ hg ci --cwd r1 -m0
+  committing subrepository sub
+  committing subrepository sub/subsub
+
+Ensure correct relative paths are used when pulling
+
+  $ hg init r2
+  $ cd r2/
+  $ hg pull -u ../r1
+  pulling from ../r1
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 2 changes to 2 files
+  pulling subrepo sub from ../r1/sub
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 2 changes to 2 files
+  pulling subrepo sub/subsub from ../r1/sub/subsub
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd ..
+
+Verify subrepo default paths were set correctly
+
+  $ hg -R r2/sub paths
+  default = $TESTTMP/r1/sub
+  $ cat r2/sub/.hg/hgrc
+  [paths]
+  default = ../../r1/sub
+  $ hg -R r2/sub/subsub paths
+  default = $TESTTMP/r1/sub/subsub
+  $ cat r2/sub/subsub/.hg/hgrc
+  [paths]
+  default = ../../../r1/sub/subsub