test-paths.t
213 lines
| 4.5 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 | ||
Matt Harbison
|
r35394 | comparing with $TESTTMP/b | ||
Nicolas Dumazet
|
r11785 | no changes found | ||
Matt Mackall
|
r12316 | [1] | ||
Nicolas Dumazet
|
r11785 | $ cd .. | ||
$ hg -R a in dupe | ||||
Matt Harbison
|
r35394 | comparing with $TESTTMP/b | ||
Nicolas Dumazet
|
r11785 | no changes found | ||
Matt Mackall
|
r12316 | [1] | ||
Benoit Boissinot
|
r12662 | $ cd a | ||
$ hg paths | ||||
Matt Harbison
|
r35394 | dupe = $TESTTMP/b#tip | ||
expand = $TESTTMP/a/$SOMETHING/bar | ||||
Benoit Boissinot
|
r12662 | $ SOMETHING=foo hg paths | ||
Matt Harbison
|
r35394 | dupe = $TESTTMP/b#tip | ||
expand = $TESTTMP/a/foo/bar | ||||
Adrian Buehlmann
|
r16843 | #if msys | ||
$ SOMETHING=//foo hg paths | ||||
Matt Harbison
|
r35394 | dupe = $TESTTMP/b#tip | ||
Adrian Buehlmann
|
r16843 | expand = /foo/bar | ||
#else | ||||
Benoit Boissinot
|
r12662 | $ SOMETHING=/foo hg paths | ||
Matt Harbison
|
r35394 | dupe = $TESTTMP/b#tip | ||
Benoit Boissinot
|
r12662 | expand = /foo/bar | ||
Adrian Buehlmann
|
r16843 | #endif | ||
Thomas Arendsen Hein
|
r14331 | $ hg paths -q | ||
dupe | ||||
expand | ||||
$ hg paths dupe | ||||
Matt Harbison
|
r35394 | $TESTTMP/b#tip | ||
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
|
r35394 | "url": "$TESTTMP/b#tip" | ||
Yuya Nishihara
|
r27728 | }, | ||
{ | ||||
"name": "expand", | ||||
Matt Harbison
|
r35394 | "url": "$TESTTMP/a/$SOMETHING/bar" | ||
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
|
r35394 | "url": "$TESTTMP/b#tip" | ||
Yuya Nishihara
|
r27728 | } | ||
] | ||||
$ hg paths -Tjson -q unknown | ||||
[ | ||||
] | ||||
[1] | ||||
Yuya Nishihara
|
r33414 | log template: | ||
(behaves as a {name: path-string} dict by default) | ||||
Yuya Nishihara
|
r34540 | $ hg log -rnull -T '{peerurls}\n' | ||
Matt Harbison
|
r35394 | dupe=$TESTTMP/b#tip expand=$TESTTMP/a/$SOMETHING/bar | ||
Yuya Nishihara
|
r34540 | $ hg log -rnull -T '{join(peerurls, "\n")}\n' | ||
Matt Harbison
|
r35394 | dupe=$TESTTMP/b#tip | ||
expand=$TESTTMP/a/$SOMETHING/bar | ||||
Yuya Nishihara
|
r34540 | $ hg log -rnull -T '{peerurls % "{name}: {url}\n"}' | ||
Matt Harbison
|
r35394 | dupe: $TESTTMP/b#tip | ||
expand: $TESTTMP/a/$SOMETHING/bar | ||||
Yuya Nishihara
|
r34540 | $ hg log -rnull -T '{get(peerurls, "dupe")}\n' | ||
Matt Harbison
|
r35394 | $TESTTMP/b#tip | ||
Yuya Nishihara
|
r33414 | |||
Yuya Nishihara
|
r34539 | (sub options can be populated by map/dot operation) | ||
Yuya Nishihara
|
r33414 | |||
Yuya Nishihara
|
r34539 | $ hg log -rnull \ | ||
Yuya Nishihara
|
r34540 | > -T '{get(peerurls, "dupe") % "url: {url}\npushurl: {pushurl}\n"}' | ||
Matt Harbison
|
r35394 | url: $TESTTMP/b#tip | ||
Yuya Nishihara
|
r33414 | pushurl: https://example.com/dupe | ||
Yuya Nishihara
|
r34540 | $ hg log -rnull -T '{peerurls.dupe.pushurl}\n' | ||
Yuya Nishihara
|
r33414 | https://example.com/dupe | ||
Yuya Nishihara
|
r34539 | (in JSON, it's a dict of urls) | ||
Yuya Nishihara
|
r33414 | |||
Yuya Nishihara
|
r34540 | $ hg log -rnull -T '{peerurls|json}\n' | sed 's|\\\\|/|g' | ||
Yuya Nishihara
|
r34539 | {"dupe": "$TESTTMP/b#tip", "expand": "$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
|
r34540 | $ hg log -rnull -T '{get(peerurls, "insecure")}\n' | ||
Yuya Nishihara
|
r33414 | 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= | ||||
Matt Harbison
|
r35394 | dupe = $TESTTMP/b#tip | ||
Yuya Nishihara
|
r28038 | dupe:pushurl = https://example.com/dupe | ||
Matt Harbison
|
r35394 | expand = $TESTTMP/a/$SOMETHING/bar | ||
Yuya Nishihara
|
r28038 | 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 .. | ||