annotate tests/test-paths.t @ 47072:4c041c71ec01

revlog: introduce an explicit tracking of what the revlog is about Since the dawn of time, people have been forced to rely to lossy introspection of the index filename to determine what the purpose and role of the revlog they encounter is. This is hacky, error prone, inflexible, abstraction-leaky, <insert-your-own-complaints-here>. In f63299ee7e4d Raphaël introduced a new attribute to track this information: `revlog_kind`. However it is initialized in an odd place and various instances end up not having it set. In addition is only tracking some of the information we end up having to introspect in various pieces of code. So we add a new attribute that holds more data and is more strictly enforced. This work is done in collaboration with Raphaël. The `revlog_kind` one will be removed/adapted in the next changeset. We expect to be able to clean up various existing piece of code and to simplify coming work around the newer revlog format. Differential Revision: https://phab.mercurial-scm.org/D10352
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 06 Apr 2021 05:20:24 +0200
parents 93c224dc099b
children 9c4d30b079e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11785
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
1 $ hg init a
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
2 $ hg clone a b
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
3 updating to branch default
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
4 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
5 $ cd a
27726
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
6
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
7 with no paths:
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
8
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
9 $ hg paths
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
10 $ hg paths unknown
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
11 not found!
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
12 [1]
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
13 $ hg paths -Tjson
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
14 [
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
15 ]
27726
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
16
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
17 with paths:
7e9dc8bbebf6 paths: use single loop for both search=None|pattern cases
Yuya Nishihara <yuya@tcha.org>
parents: 27329
diff changeset
18
11785
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
19 $ echo '[paths]' >> .hg/hgrc
27320
59d5f619e69e paths: include #fragment again
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
20 $ echo 'dupe = ../b#tip' >> .hg/hgrc
12662
7285b2824fb7 ui.paths: expand paths directly in fixconfig (issue2373)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 12640
diff changeset
21 $ echo 'expand = $SOMETHING/bar' >> .hg/hgrc
11785
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
22 $ hg in dupe
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
23 comparing with $TESTTMP/b
11785
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
24 no changes found
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11785
diff changeset
25 [1]
11785
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
26 $ cd ..
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
27 $ hg -R a in dupe
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
28 comparing with $TESTTMP/b
11785
7d9be960cd9a tests: unify test-paths
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 5951
diff changeset
29 no changes found
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11785
diff changeset
30 [1]
12662
7285b2824fb7 ui.paths: expand paths directly in fixconfig (issue2373)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 12640
diff changeset
31 $ cd a
7285b2824fb7 ui.paths: expand paths directly in fixconfig (issue2373)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 12640
diff changeset
32 $ hg paths
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
33 dupe = $TESTTMP/b#tip
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
34 expand = $TESTTMP/a/$SOMETHING/bar
12662
7285b2824fb7 ui.paths: expand paths directly in fixconfig (issue2373)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 12640
diff changeset
35 $ SOMETHING=foo hg paths
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
36 dupe = $TESTTMP/b#tip
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
37 expand = $TESTTMP/a/foo/bar
16843
61f3ca8e4d39 test-paths.t: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com>
parents: 15567
diff changeset
38 #if msys
61f3ca8e4d39 test-paths.t: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com>
parents: 15567
diff changeset
39 $ SOMETHING=//foo hg paths
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
40 dupe = $TESTTMP/b#tip
16843
61f3ca8e4d39 test-paths.t: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com>
parents: 15567
diff changeset
41 expand = /foo/bar
61f3ca8e4d39 test-paths.t: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com>
parents: 15567
diff changeset
42 #else
12662
7285b2824fb7 ui.paths: expand paths directly in fixconfig (issue2373)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 12640
diff changeset
43 $ SOMETHING=/foo hg paths
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
44 dupe = $TESTTMP/b#tip
12662
7285b2824fb7 ui.paths: expand paths directly in fixconfig (issue2373)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 12640
diff changeset
45 expand = /foo/bar
16843
61f3ca8e4d39 test-paths.t: enable for Windows using #if
Adrian Buehlmann <adrian@cadifra.com>
parents: 15567
diff changeset
46 #endif
14331
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
47 $ hg paths -q
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
48 dupe
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
49 expand
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
50 $ hg paths dupe
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
51 $TESTTMP/b#tip
14331
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
52 $ hg paths -q dupe
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
53 $ hg paths unknown
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
54 not found!
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
55 [1]
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
56 $ hg paths -q unknown
3b9a896af09c paths: Add support for -q/--quiet
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13797
diff changeset
57 [1]
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
58
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
59 formatter output with paths:
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
60
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
61 $ echo 'dupe:pushurl = https://example.com/dupe' >> .hg/hgrc
28173
1ff28873830e test-paths: fix up json output to match $TESTTMP on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 27728
diff changeset
62 $ hg paths -Tjson | sed 's|\\\\|\\|g'
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
63 [
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
64 {
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
65 "name": "dupe",
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
66 "pushurl": "https://example.com/dupe",
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
67 "url": "$TESTTMP/b#tip"
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
68 },
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
69 {
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
70 "name": "expand",
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
71 "url": "$TESTTMP/a/$SOMETHING/bar"
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
72 }
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
73 ]
28173
1ff28873830e test-paths: fix up json output to match $TESTTMP on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 27728
diff changeset
74 $ hg paths -Tjson dupe | sed 's|\\\\|\\|g'
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
75 [
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
76 {
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
77 "name": "dupe",
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
78 "pushurl": "https://example.com/dupe",
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
79 "url": "$TESTTMP/b#tip"
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
80 }
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
81 ]
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
82 $ hg paths -Tjson -q unknown
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
83 [
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
84 ]
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
85 [1]
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
86
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
87 log template:
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
88
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
89 (behaves as a {name: path-string} dict by default)
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
90
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
91 $ hg log -rnull -T '{peerurls}\n'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
92 dupe=$TESTTMP/b#tip expand=$TESTTMP/a/$SOMETHING/bar
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
93 $ hg log -rnull -T '{join(peerurls, "\n")}\n'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
94 dupe=$TESTTMP/b#tip
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
95 expand=$TESTTMP/a/$SOMETHING/bar
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
96 $ hg log -rnull -T '{peerurls % "{name}: {url}\n"}'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
97 dupe: $TESTTMP/b#tip
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
98 expand: $TESTTMP/a/$SOMETHING/bar
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
99 $ hg log -rnull -T '{get(peerurls, "dupe")}\n'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
100 $TESTTMP/b#tip
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
101
34538
ac38e889b33a templatekw: make experimental {peerpaths} return a single-level dict (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34537
diff changeset
102 (sub options can be populated by map/dot operation)
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
103
34538
ac38e889b33a templatekw: make experimental {peerpaths} return a single-level dict (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34537
diff changeset
104 $ hg log -rnull \
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
105 > -T '{get(peerurls, "dupe") % "url: {url}\npushurl: {pushurl}\n"}'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
106 url: $TESTTMP/b#tip
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
107 pushurl: https://example.com/dupe
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
108 $ hg log -rnull -T '{peerurls.dupe.pushurl}\n'
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
109 https://example.com/dupe
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
110
34538
ac38e889b33a templatekw: make experimental {peerpaths} return a single-level dict (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34537
diff changeset
111 (in JSON, it's a dict of urls)
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
112
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
113 $ hg log -rnull -T '{peerurls|json}\n' | sed 's|\\\\|/|g'
34538
ac38e889b33a templatekw: make experimental {peerpaths} return a single-level dict (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34537
diff changeset
114 {"dupe": "$TESTTMP/b#tip", "expand": "$TESTTMP/a/$SOMETHING/bar"}
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
115
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
116 password should be masked in plain output, but not in machine-readable/template
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
117 output:
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
118
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
119 $ echo 'insecure = http://foo:insecure@example.com/' >> .hg/hgrc
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
120 $ hg paths insecure
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
121 http://foo:***@example.com/
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
122 $ hg paths -Tjson insecure
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
123 [
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
124 {
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
125 "name": "insecure",
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
126 "url": "http://foo:insecure@example.com/"
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
127 }
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
128 ]
34539
f30e59703d98 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 34538
diff changeset
129 $ hg log -rnull -T '{get(peerurls, "insecure")}\n'
33414
16ed67164002 templatekw: export ui.paths as {peerpaths}
Yuya Nishihara <yuya@tcha.org>
parents: 28218
diff changeset
130 http://foo:insecure@example.com/
27728
294037159c64 paths: port to generic templater
Yuya Nishihara <yuya@tcha.org>
parents: 27726
diff changeset
131
28038
72f2a19c5f88 zeroconf: forward all arguments passed to ui.configitems() wrapper
Yuya Nishihara <yuya@tcha.org>
parents: 27728
diff changeset
132 zeroconf wraps ui.configitems(), which shouldn't crash at least:
72f2a19c5f88 zeroconf: forward all arguments passed to ui.configitems() wrapper
Yuya Nishihara <yuya@tcha.org>
parents: 27728
diff changeset
133
72f2a19c5f88 zeroconf: forward all arguments passed to ui.configitems() wrapper
Yuya Nishihara <yuya@tcha.org>
parents: 27728
diff changeset
134 $ hg paths --config extensions.zeroconf=
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
135 dupe = $TESTTMP/b#tip
28038
72f2a19c5f88 zeroconf: forward all arguments passed to ui.configitems() wrapper
Yuya Nishihara <yuya@tcha.org>
parents: 27728
diff changeset
136 dupe:pushurl = https://example.com/dupe
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34539
diff changeset
137 expand = $TESTTMP/a/$SOMETHING/bar
28038
72f2a19c5f88 zeroconf: forward all arguments passed to ui.configitems() wrapper
Yuya Nishihara <yuya@tcha.org>
parents: 27728
diff changeset
138 insecure = http://foo:***@example.com/
72f2a19c5f88 zeroconf: forward all arguments passed to ui.configitems() wrapper
Yuya Nishihara <yuya@tcha.org>
parents: 27728
diff changeset
139
13797
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
140 $ cd ..
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
141
27266
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
142 sub-options for an undeclared path are ignored
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
143
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
144 $ hg init suboptions
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
145 $ cd suboptions
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
146
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
147 $ cat > .hg/hgrc << EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
148 > [paths]
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
149 > path0 = https://example.com/path0
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
150 > path1:pushurl = https://example.com/path1
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
151 > EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
152 $ hg paths
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
153 path0 = https://example.com/path0
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
154
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
155 unknown sub-options aren't displayed
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
156
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
157 $ cat > .hg/hgrc << EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
158 > [paths]
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
159 > path0 = https://example.com/path0
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
160 > path0:foo = https://example.com/path1
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
161 > EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
162
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
163 $ hg paths
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
164 path0 = https://example.com/path0
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
165
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
166 :pushurl must be a URL
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
167
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
168 $ cat > .hg/hgrc << EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
169 > [paths]
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
170 > default = /path/to/nothing
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
171 > default:pushurl = /not/a/url
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
172 > EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
173
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
174 $ hg paths
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
175 (paths.default:pushurl not a URL; ignoring)
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
176 default = /path/to/nothing
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
177
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
178 #fragment is not allowed in :pushurl
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
179
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
180 $ cat > .hg/hgrc << EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
181 > [paths]
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
182 > default = https://example.com/repo
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
183 > invalid = https://example.com/repo
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
184 > invalid:pushurl = https://example.com/repo#branch
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
185 > EOF
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
186
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
187 $ hg paths
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
188 ("#fragment" in paths.invalid:pushurl not supported; ignoring)
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
189 default = https://example.com/repo
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
190 invalid = https://example.com/repo
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
191 invalid:pushurl = https://example.com/repo
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
192
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
193 $ cd ..
4dccc37b87bd ui: support declaring path push urls as sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
194
13797
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
195 'file:' disables [paths] entries for clone destination
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
196
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
197 $ cat >> $HGRCPATH <<EOF
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
198 > [paths]
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
199 > gpath1 = http://hg.example.com
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
200 > EOF
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
201
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
202 $ hg clone a gpath1
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
203 abort: cannot create new http repository
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
204 [255]
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
205
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
206 $ hg clone a file:gpath1
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
207 updating to branch default
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
208 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
209 $ cd gpath1
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
210 $ hg -q id
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
211 000000000000
16d5e80876de test-paths.t: 'file:' disables [paths] entries for clone dest
Adrian Buehlmann <adrian@cadifra.com>
parents: 12662
diff changeset
212
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16843
diff changeset
213 $ cd ..
46826
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
214
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
215 Testing path referencing other paths
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
216 ====================================
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
217
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
218 basic setup
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
219 -----------
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
220
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
221 $ ls -1
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
222 a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
223 b
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
224 gpath1
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
225 suboptions
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
226 $ hg init chained_path
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
227 $ cd chained_path
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
228 $ cat << EOF > .hg/hgrc
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
229 > [paths]
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
230 > default=../a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
231 > other_default=path://default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
232 > path_with_branch=../branchy#foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
233 > other_branch=path://path_with_branch
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
234 > other_branched=path://path_with_branch#default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
235 > pushdest=../push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
236 > pushdest:pushrev=default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
237 > pushdest2=path://pushdest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
238 > pushdest-overwrite=path://pushdest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
239 > pushdest-overwrite:pushrev=foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
240 > EOF
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
241
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
242 $ hg init ../branchy
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
243 $ hg init ../push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
244 $ hg debugbuilddag -R ../branchy '.:base+3<base@foo+5'
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
245 $ hg log -G -T '{branch}\n' -R ../branchy
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
246 o foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
247 |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
248 o foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
249 |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
250 o foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
251 |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
252 o foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
253 |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
254 o foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
255 |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
256 | o default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
257 | |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
258 | o default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
259 | |
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
260 | o default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
261 |/
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
262 o default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
263
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
264
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
265 $ hg paths
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
266 default = $TESTTMP/a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
267 gpath1 = http://hg.example.com/
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
268 other_branch = $TESTTMP/branchy#foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
269 other_branched = $TESTTMP/branchy#default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
270 other_default = $TESTTMP/a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
271 path_with_branch = $TESTTMP/branchy#foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
272 pushdest = $TESTTMP/push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
273 pushdest:pushrev = default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
274 pushdest-overwrite = $TESTTMP/push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
275 pushdest-overwrite:pushrev = foo
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
276 pushdest2 = $TESTTMP/push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
277 pushdest2:pushrev = default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
278
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
279 test basic chaining
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
280 -------------------
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
281
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
282 $ hg path other_default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
283 $TESTTMP/a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
284 $ hg pull default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
285 pulling from $TESTTMP/a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
286 no changes found
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
287 $ hg pull other_default
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
288 pulling from $TESTTMP/a
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
289 no changes found
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
290
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
291 test inheritance of the #fragment part
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
292 --------------------------------------
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
293
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
294 $ hg pull path_with_branch
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
295 pulling from $TESTTMP/branchy
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
296 adding changesets
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
297 adding manifests
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
298 adding file changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
299 added 6 changesets with 0 changes to 0 files
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
300 new changesets 1ea73414a91b:bcebb50b77de
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
301 (run 'hg update' to get a working copy)
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
302 $ hg pull other_branch
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
303 pulling from $TESTTMP/branchy
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
304 no changes found
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
305 $ hg pull other_branched
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
306 pulling from $TESTTMP/branchy
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
307 searching for changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
308 adding changesets
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
309 adding manifests
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
310 adding file changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
311 added 3 changesets with 0 changes to 0 files (+1 heads)
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
312 new changesets 66f7d451a68b:2dc09a01254d
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
313 (run 'hg heads' to see heads)
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
314
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
315 test inheritance of the suboptions
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
316 ----------------------------------
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
317
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
318 $ hg push pushdest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
319 pushing to $TESTTMP/push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
320 searching for changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
321 adding changesets
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
322 adding manifests
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
323 adding file changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
324 added 4 changesets with 0 changes to 0 files
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
325 $ hg push pushdest2
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
326 pushing to $TESTTMP/push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
327 searching for changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
328 no changes found
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
329 [1]
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
330 $ hg push pushdest-overwrite --new-branch
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
331 pushing to $TESTTMP/push-dest
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
332 searching for changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
333 adding changesets
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
334 adding manifests
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
335 adding file changes
83b0a5c0dfec path: introduce a `path://` syntax to reference other path name
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
336 added 5 changesets with 0 changes to 0 files (+1 heads)
46827
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
337
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
338 Test chaining path:// definition
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
339 --------------------------------
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
340
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
341 This is currently unsupported, but feel free to implement the necessary
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
342 dependency detection.
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
343
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
344 $ cat << EOF >> .hg/hgrc
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
345 > chain_path=path://other_default
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
346 > EOF
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
347
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
348 $ hg id
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
349 000000000000
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
350 $ hg path
46928
93c224dc099b urlutil: use bytes for Abort messages
Matt Harbison <matt_harbison@yahoo.com>
parents: 46828
diff changeset
351 abort: cannot use `path://other_default`, "other_default" is also defined as a `path://`
46827
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
352 [255]
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
353 $ hg pull chain_path
46928
93c224dc099b urlutil: use bytes for Abort messages
Matt Harbison <matt_harbison@yahoo.com>
parents: 46828
diff changeset
354 abort: cannot use `path://other_default`, "other_default" is also defined as a `path://`
46827
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
355 [255]
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
356
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
357 Doing an actual circle should always be an issue
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
358
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
359 $ cat << EOF >> .hg/hgrc
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
360 > rock=path://cissors
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
361 > cissors=path://paper
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
362 > paper=://rock
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
363 > EOF
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
364
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
365 $ hg id
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
366 000000000000
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
367 $ hg path
46928
93c224dc099b urlutil: use bytes for Abort messages
Matt Harbison <matt_harbison@yahoo.com>
parents: 46828
diff changeset
368 abort: cannot use `path://other_default`, "other_default" is also defined as a `path://`
46827
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
369 [255]
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
370 $ hg pull chain_path
46928
93c224dc099b urlutil: use bytes for Abort messages
Matt Harbison <matt_harbison@yahoo.com>
parents: 46828
diff changeset
371 abort: cannot use `path://other_default`, "other_default" is also defined as a `path://`
46827
1ecf082386b7 path: forbid chaining `path://` definitions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46826
diff changeset
372 [255]
46828
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
373
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
374 Test basic error cases
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
375 ----------------------
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
376
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
377 $ cat << EOF > .hg/hgrc
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
378 > [paths]
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
379 > error-missing=path://unknown
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
380 > EOF
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
381 $ hg path
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
382 abort: cannot use `path://unknown`, "unknown" is not a known path
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
383 [255]
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
384 $ hg pull error-missing
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
385 abort: cannot use `path://unknown`, "unknown" is not a known path
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
386 [255]
395cf404e76a path: error out if the `path://` reference point to an unknown path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46827
diff changeset
387