test-paths.t
222 lines
| 5.0 KiB
| text/troff
|
Tads3Lexer
/ tests / test-paths.t
Nicolas Dumazet
|
r11785 | $ hg init a | ||
$ hg clone a b | ||||
updating to branch default | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd a | ||||
Yuya Nishihara
|
r27726 | |||
with no paths: | ||||
$ hg paths | ||||
$ hg paths unknown | ||||
not found! | ||||
[1] | ||||
Yuya Nishihara
|
r27728 | $ hg paths -Tjson | ||
[ | ||||
] | ||||
Yuya Nishihara
|
r27726 | |||
with paths: | ||||
Nicolas Dumazet
|
r11785 | $ echo '[paths]' >> .hg/hgrc | ||
Yuya Nishihara
|
r27320 | $ echo 'dupe = ../b#tip' >> .hg/hgrc | ||
Benoit Boissinot
|
r12662 | $ echo 'expand = $SOMETHING/bar' >> .hg/hgrc | ||
Nicolas Dumazet
|
r11785 | $ hg in dupe | ||
Mads Kiilerich
|
r15447 | comparing with $TESTTMP/b (glob) | ||
Nicolas Dumazet
|
r11785 | no changes found | ||
Matt Mackall
|
r12316 | [1] | ||
Nicolas Dumazet
|
r11785 | $ cd .. | ||
$ hg -R a in dupe | ||||
Mads Kiilerich
|
r15447 | comparing with $TESTTMP/b (glob) | ||
Nicolas Dumazet
|
r11785 | no changes found | ||
Matt Mackall
|
r12316 | [1] | ||
Benoit Boissinot
|
r12662 | $ cd a | ||
$ hg paths | ||||
Yuya Nishihara
|
r27320 | dupe = $TESTTMP/b#tip (glob) | ||
Mads Kiilerich
|
r15447 | expand = $TESTTMP/a/$SOMETHING/bar (glob) | ||
Benoit Boissinot
|
r12662 | $ SOMETHING=foo hg paths | ||
Yuya Nishihara
|
r27320 | dupe = $TESTTMP/b#tip (glob) | ||
Mads Kiilerich
|
r15447 | expand = $TESTTMP/a/foo/bar (glob) | ||
Adrian Buehlmann
|
r16843 | #if msys | ||
$ SOMETHING=//foo hg paths | ||||
Yuya Nishihara
|
r27320 | dupe = $TESTTMP/b#tip (glob) | ||
Adrian Buehlmann
|
r16843 | expand = /foo/bar | ||
#else | ||||
Benoit Boissinot
|
r12662 | $ SOMETHING=/foo hg paths | ||
Yuya Nishihara
|
r27320 | dupe = $TESTTMP/b#tip (glob) | ||
Benoit Boissinot
|
r12662 | expand = /foo/bar | ||
Adrian Buehlmann
|
r16843 | #endif | ||
Thomas Arendsen Hein
|
r14331 | $ hg paths -q | ||
dupe | ||||
expand | ||||
$ hg paths dupe | ||||
Yuya Nishihara
|
r27320 | $TESTTMP/b#tip (glob) | ||
Thomas Arendsen Hein
|
r14331 | $ hg paths -q dupe | ||
$ hg paths unknown | ||||
not found! | ||||
[1] | ||||
$ hg paths -q unknown | ||||
[1] | ||||
Yuya Nishihara
|
r27728 | |||
formatter output with paths: | ||||
$ echo 'dupe:pushurl = https://example.com/dupe' >> .hg/hgrc | ||||
Matt Harbison
|
r28173 | $ hg paths -Tjson | sed 's|\\\\|\\|g' | ||
Yuya Nishihara
|
r27728 | [ | ||
{ | ||||
"name": "dupe", | ||||
"pushurl": "https://example.com/dupe", | ||||
Matt Harbison
|
r28173 | "url": "$TESTTMP/b#tip" (glob) | ||
Yuya Nishihara
|
r27728 | }, | ||
{ | ||||
"name": "expand", | ||||
Matt Harbison
|
r28173 | "url": "$TESTTMP/a/$SOMETHING/bar" (glob) | ||
Yuya Nishihara
|
r27728 | } | ||
] | ||||
Matt Harbison
|
r28173 | $ hg paths -Tjson dupe | sed 's|\\\\|\\|g' | ||
Yuya Nishihara
|
r27728 | [ | ||
{ | ||||
"name": "dupe", | ||||
"pushurl": "https://example.com/dupe", | ||||
Matt Harbison
|
r28173 | "url": "$TESTTMP/b#tip" (glob) | ||
Yuya Nishihara
|
r27728 | } | ||
] | ||||
$ hg paths -Tjson -q unknown | ||||
[ | ||||
] | ||||
[1] | ||||
Yuya Nishihara
|
r33414 | log template: | ||
(behaves as a {name: path-string} dict by default) | ||||
$ hg log -rnull -T '{peerpaths}\n' | ||||
dupe=$TESTTMP/b#tip expand=$TESTTMP/a/$SOMETHING/bar (glob) | ||||
$ hg log -rnull -T '{join(peerpaths, "\n")}\n' | ||||
dupe=$TESTTMP/b#tip (glob) | ||||
expand=$TESTTMP/a/$SOMETHING/bar (glob) | ||||
$ hg log -rnull -T '{peerpaths % "{name}: {path}\n"}' | ||||
dupe: $TESTTMP/a/$SOMETHING/bar (glob) | ||||
expand: $TESTTMP/a/$SOMETHING/bar (glob) | ||||
$ hg log -rnull -T '{get(peerpaths, "dupe")}\n' | ||||
$TESTTMP/a/$SOMETHING/bar (glob) | ||||
(but a path is actually a dict of url and sub-options) | ||||
$ hg log -rnull -T '{join(get(peerpaths, "dupe"), "\n")}\n' | ||||
url=$TESTTMP/b#tip (glob) | ||||
pushurl=https://example.com/dupe | ||||
$ hg log -rnull -T '{get(peerpaths, "dupe") % "{key}: {value}\n"}' | ||||
url: $TESTTMP/b#tip (glob) | ||||
pushurl: https://example.com/dupe | ||||
$ hg log -rnull -T '{get(get(peerpaths, "dupe"), "pushurl")}\n' | ||||
https://example.com/dupe | ||||
(so there's weird behavior) | ||||
$ hg log -rnull -T '{get(peerpaths, "dupe")|count}\n' | ||||
2 | ||||
$ hg log -rnull -T '{get(peerpaths, "dupe")|stringify|count}\n' | ||||
[0-9]{2,} (re) | ||||
(in JSON, it's a dict of dicts) | ||||
Matt Harbison
|
r33430 | $ hg log -rnull -T '{peerpaths|json}\n' | sed 's|\\\\|/|g' | ||
{"dupe": {"pushurl": "https://example.com/dupe", "url": "$TESTTMP/b#tip"}, "expand": {"url": "$TESTTMP/a/$SOMETHING/bar"}} | ||||
Yuya Nishihara
|
r33414 | |||
password should be masked in plain output, but not in machine-readable/template | ||||
output: | ||||
Yuya Nishihara
|
r27728 | |||
$ echo 'insecure = http://foo:insecure@example.com/' >> .hg/hgrc | ||||
$ hg paths insecure | ||||
http://foo:***@example.com/ | ||||
$ hg paths -Tjson insecure | ||||
[ | ||||
{ | ||||
"name": "insecure", | ||||
"url": "http://foo:insecure@example.com/" | ||||
} | ||||
] | ||||
Yuya Nishihara
|
r33414 | $ hg log -rnull -T '{get(peerpaths, "insecure")}\n' | ||
http://foo:insecure@example.com/ | ||||
Yuya Nishihara
|
r27728 | |||
Yuya Nishihara
|
r28038 | zeroconf wraps ui.configitems(), which shouldn't crash at least: | ||
$ hg paths --config extensions.zeroconf= | ||||
dupe = $TESTTMP/b#tip (glob) | ||||
dupe:pushurl = https://example.com/dupe | ||||
expand = $TESTTMP/a/$SOMETHING/bar (glob) | ||||
insecure = http://foo:***@example.com/ | ||||
Adrian Buehlmann
|
r13797 | $ cd .. | ||
Gregory Szorc
|
r27266 | sub-options for an undeclared path are ignored | ||
$ hg init suboptions | ||||
$ cd suboptions | ||||
$ cat > .hg/hgrc << EOF | ||||
> [paths] | ||||
> path0 = https://example.com/path0 | ||||
> path1:pushurl = https://example.com/path1 | ||||
> EOF | ||||
$ hg paths | ||||
path0 = https://example.com/path0 | ||||
unknown sub-options aren't displayed | ||||
$ cat > .hg/hgrc << EOF | ||||
> [paths] | ||||
> path0 = https://example.com/path0 | ||||
> path0:foo = https://example.com/path1 | ||||
> EOF | ||||
$ hg paths | ||||
path0 = https://example.com/path0 | ||||
:pushurl must be a URL | ||||
$ cat > .hg/hgrc << EOF | ||||
> [paths] | ||||
> default = /path/to/nothing | ||||
> default:pushurl = /not/a/url | ||||
> EOF | ||||
$ hg paths | ||||
(paths.default:pushurl not a URL; ignoring) | ||||
default = /path/to/nothing | ||||
#fragment is not allowed in :pushurl | ||||
$ cat > .hg/hgrc << EOF | ||||
> [paths] | ||||
> default = https://example.com/repo | ||||
> invalid = https://example.com/repo | ||||
> invalid:pushurl = https://example.com/repo#branch | ||||
> EOF | ||||
$ hg paths | ||||
("#fragment" in paths.invalid:pushurl not supported; ignoring) | ||||
default = https://example.com/repo | ||||
invalid = https://example.com/repo | ||||
invalid:pushurl = https://example.com/repo | ||||
$ cd .. | ||||
Adrian Buehlmann
|
r13797 | 'file:' disables [paths] entries for clone destination | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [paths] | ||||
> gpath1 = http://hg.example.com | ||||
> EOF | ||||
$ hg clone a gpath1 | ||||
abort: cannot create new http repository | ||||
[255] | ||||
$ hg clone a file:gpath1 | ||||
updating to branch default | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd gpath1 | ||||
$ hg -q id | ||||
000000000000 | ||||
Mads Kiilerich
|
r16913 | $ cd .. | ||