changeset 13122:4a13ca2c21ce

merge with stable
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Fri, 10 Dec 2010 23:05:48 +0100
parents 5dac0d04b838 (current diff) 2245fcd0e160 (diff)
children e76701bf4480
files mercurial/subrepo.py
diffstat 2 files changed, 57 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/subrepo.py	Wed Dec 08 13:12:12 2010 -0600
+++ b/mercurial/subrepo.py	Fri Dec 10 23:05:48 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	Wed Dec 08 13:12:12 2010 -0600
+++ b/tests/test-subrepo-relative-path.t	Fri Dec 10 23:05:48 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