Mercurial > public > mercurial-scm > hg-stable
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