diff tests/test-subrepo-paths.t @ 15150:91dc8878f888

subrepo: try remapping subpaths using the "final" path Before, the right-hand side of a .hgsub entry was used, as is, to match the left-hand side of a subpaths entry. This turned out to be less useful than expected since a .hgsub file with src/foo = src/foo has little context to do remapping on. The new idea is therefore to prefix the parent repo path *before* the remapping takes place. If the parent repository path (as defined by _abssource) is http://example.net/parent then the remapping for the above .hgsub entry will be done on the expanded path: http://example.net/parent/src/foo If this expanded path is not changed by the remapping, then we remap src/foo alone. This is the old behavior where the right-hand side is remapped without context.
author Martin Geisler <mg@aragost.com>
date Thu, 22 Sep 2011 15:15:18 +0200
parents 4f5b269f4ce6
children 9910f60a37ee
line wrap: on
line diff
--- a/tests/test-subrepo-paths.t	Thu Sep 22 14:39:49 2011 +0200
+++ b/tests/test-subrepo-paths.t	Thu Sep 22 15:15:18 2011 +0200
@@ -1,19 +1,22 @@
   $ hg init outer
   $ cd outer
 
+  $ echo '[paths]' >> .hg/hgrc
+  $ echo 'default = http://example.net/' >> .hg/hgrc
+
 hg debugsub with no remapping
 
-  $ echo 'sub = http://example.net/libfoo' > .hgsub
+  $ echo 'sub = libfoo' > .hgsub
   $ hg add .hgsub
 
   $ hg debugsub
   path sub
-   source   http://example.net/libfoo
+   source   libfoo
    revision 
 
 hg debugsub with remapping
 
-  $ echo '[subpaths]' > .hg/hgrc
+  $ echo '[subpaths]' >> .hg/hgrc
   $ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc
 
   $ hg debugsub
@@ -30,6 +33,21 @@
    source   C:\libs\bar-lib\
    revision 
 
+test absolute source path -- testing with a URL is important since
+standard os.path.join wont treat that as an absolute path
+
+  $ echo 'abs = http://example.net/abs' > .hgsub
+  $ hg debugsub
+  path abs
+   source   http://example.net/abs
+   revision 
+
+  $ echo 'abs = /abs' > .hgsub
+  $ hg debugsub
+  path abs
+   source   /abs
+   revision 
+
 test bad subpaths pattern
 
   $ cat > .hg/hgrc <<EOF