mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
afe812d8de
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.
60 lines
1.2 KiB
Perl
60 lines
1.2 KiB
Perl
$ hg init outer
|
|
$ cd outer
|
|
|
|
$ echo '[paths]' >> .hg/hgrc
|
|
$ echo 'default = http://example.net/' >> .hg/hgrc
|
|
|
|
hg debugsub with no remapping
|
|
|
|
$ echo 'sub = libfoo' > .hgsub
|
|
$ hg add .hgsub
|
|
|
|
$ hg debugsub
|
|
path sub
|
|
source libfoo
|
|
revision
|
|
|
|
hg debugsub with remapping
|
|
|
|
$ echo '[subpaths]' >> .hg/hgrc
|
|
$ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc
|
|
|
|
$ hg debugsub
|
|
path sub
|
|
source C:\libs\foo-lib\
|
|
revision
|
|
|
|
test cumulative remapping, the $HGRCPATH file is loaded first
|
|
|
|
$ echo '[subpaths]' >> $HGRCPATH
|
|
$ echo 'libfoo = libbar' >> $HGRCPATH
|
|
$ hg debugsub
|
|
path sub
|
|
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
|
|
> [subpaths]
|
|
> .* = \1
|
|
> EOF
|
|
$ hg debugsub
|
|
abort: bad subrepository pattern in $TESTTMP/outer/.hg/hgrc:2: invalid group reference
|
|
[255]
|