##// END OF EJS Templates
subrepo: try remapping subpaths using the "final" path...
Martin Geisler -
r15150:91dc8878 default
parent child Browse files
Show More
@@ -74,6 +74,23 b' def state(ctx, ui):'
74 raise util.Abort(_('missing ] in subrepo source'))
74 raise util.Abort(_('missing ] in subrepo source'))
75 kind, src = src.split(']', 1)
75 kind, src = src.split(']', 1)
76 kind = kind[1:]
76 kind = kind[1:]
77 src = src.lstrip() # strip any extra whitespace after ']'
78
79 if not util.url(src).isabs():
80 parent = _abssource(ctx._repo, abort=False)
81 if parent:
82 parent = util.url(parent)
83 parent.path = posixpath.join(parent.path or '', src)
84 parent.path = posixpath.normpath(parent.path)
85 joined = str(parent)
86 # Remap the full joined path and use it if it changes,
87 # else remap the original source.
88 remapped = remap(joined)
89 if remapped == joined:
90 src = remap(src)
91 else:
92 src = remapped
93
77 src = remap(src)
94 src = remap(src)
78 state[path] = (src.strip(), rev.get(path, ''), kind)
95 state[path] = (src.strip(), rev.get(path, ''), kind)
79
96
@@ -1,19 +1,22 b''
1 $ hg init outer
1 $ hg init outer
2 $ cd outer
2 $ cd outer
3
3
4 $ echo '[paths]' >> .hg/hgrc
5 $ echo 'default = http://example.net/' >> .hg/hgrc
6
4 hg debugsub with no remapping
7 hg debugsub with no remapping
5
8
6 $ echo 'sub = http://example.net/libfoo' > .hgsub
9 $ echo 'sub = libfoo' > .hgsub
7 $ hg add .hgsub
10 $ hg add .hgsub
8
11
9 $ hg debugsub
12 $ hg debugsub
10 path sub
13 path sub
11 source http://example.net/libfoo
14 source libfoo
12 revision
15 revision
13
16
14 hg debugsub with remapping
17 hg debugsub with remapping
15
18
16 $ echo '[subpaths]' > .hg/hgrc
19 $ echo '[subpaths]' >> .hg/hgrc
17 $ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc
20 $ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc
18
21
19 $ hg debugsub
22 $ hg debugsub
@@ -30,6 +33,21 b' test cumulative remapping, the $HGRCPATH'
30 source C:\libs\bar-lib\
33 source C:\libs\bar-lib\
31 revision
34 revision
32
35
36 test absolute source path -- testing with a URL is important since
37 standard os.path.join wont treat that as an absolute path
38
39 $ echo 'abs = http://example.net/abs' > .hgsub
40 $ hg debugsub
41 path abs
42 source http://example.net/abs
43 revision
44
45 $ echo 'abs = /abs' > .hgsub
46 $ hg debugsub
47 path abs
48 source /abs
49 revision
50
33 test bad subpaths pattern
51 test bad subpaths pattern
34
52
35 $ cat > .hg/hgrc <<EOF
53 $ cat > .hg/hgrc <<EOF
General Comments 0
You need to be logged in to leave comments. Login now