Mercurial > public > mercurial-scm > hg
diff tests/test-subrepo-paths @ 11775:a8614c5a5e9a
subrepos: support remapping of .hgsub source paths
Given a .hgsub file containing
lib/libfoo = http://server/libfoo
the 'lib/libfoo' subrepo will be cloned from 'http://server/libfoo'.
This changeset introduces a remapping mechanism whereby the source
paths (the right-hand sides) in the .hgsub file can be remapped. This
subpaths section
[subpaths]
http://server = /local
will result in the 'lib/libfoo' subrepo being cloned from
'/local/libfoo' instead of from 'http://server/libfoo'.
The patterns (left-hand sides) are really regular expressions and the
replacement strings (right-hand sides) can refer to matched groups
using normal backreferences. This can be used for more complicated
replacements such as
[subpaths]
http://server/(.*)-hg/ = http://hg.server/\1/
which replaces 'http://server/foo-hg/' with 'http://hg.server/foo/'.
All patterns are applied in the order by which they are listed in the
config files.
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Thu, 15 Jul 2010 18:10:05 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-subrepo-paths Thu Jul 15 18:10:05 2010 +0200 @@ -0,0 +1,27 @@ +#!/bin/sh + +hg init outer +cd outer + +echo 'sub = http://example.net/libfoo' > .hgsub +hg add .hgsub + +echo '% hg debugsub with no remapping' +hg debugsub + +cat > .hg/hgrc <<EOF +[subpaths] +http://example.net = ssh://localhost +EOF + +echo '% hg debugsub with remapping' +hg debugsub + +echo '% test bad subpaths pattern' +cat > .hg/hgrc <<EOF +[subpaths] +.* = \1 +EOF +hg debugsub 2>&1 | "$TESTDIR/filtertmp.py" + +exit 0