##// END OF EJS Templates
internals: extract frame-based protocol docs to own document...
internals: extract frame-based protocol docs to own document wireprotocol.txt is quite long and difficult to digest. The frame-based protocol is effectively a standalone concept (and could even be used outside of Mercurial). So this commit extracts its docs to a standalone file. The first few paragraphs were rewritten as part of the extraction. Sections headers were adjusted accordingly. Existing referalls in wireprotocol.txt were updated to refer to the new doc / concept, which I've started referring to as `hgrpc`. I'm on the fence as to whether to move the HTTP and SSH transport details to the new doc as well. For now, I'm leaving them in wireprotocol.txt. Differential Revision: https://phab.mercurial-scm.org/D4443

File last commit:

r34540:f30e5970 default
r39594:b0e0db15 default
Show More
test-paths.t
213 lines | 4.5 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-paths
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
paths: use single loop for both search=None|pattern cases...
r27726
with no paths:
$ hg paths
$ hg paths unknown
not found!
[1]
Yuya Nishihara
paths: port to generic templater...
r27728 $ hg paths -Tjson
[
]
Yuya Nishihara
paths: use single loop for both search=None|pattern cases...
r27726
with paths:
Nicolas Dumazet
tests: unify test-paths
r11785 $ echo '[paths]' >> .hg/hgrc
Yuya Nishihara
paths: include #fragment again...
r27320 $ echo 'dupe = ../b#tip' >> .hg/hgrc
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ echo 'expand = $SOMETHING/bar' >> .hg/hgrc
Nicolas Dumazet
tests: unify test-paths
r11785 $ hg in dupe
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/b
Nicolas Dumazet
tests: unify test-paths
r11785 no changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-paths
r11785 $ cd ..
$ hg -R a in dupe
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/b
Nicolas Dumazet
tests: unify test-paths
r11785 no changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ cd a
$ hg paths
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe = $TESTTMP/b#tip
expand = $TESTTMP/a/$SOMETHING/bar
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ SOMETHING=foo hg paths
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe = $TESTTMP/b#tip
expand = $TESTTMP/a/foo/bar
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 #if msys
$ SOMETHING=//foo hg paths
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe = $TESTTMP/b#tip
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 expand = /foo/bar
#else
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ SOMETHING=/foo hg paths
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe = $TESTTMP/b#tip
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 expand = /foo/bar
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 #endif
Thomas Arendsen Hein
paths: Add support for -q/--quiet...
r14331 $ hg paths -q
dupe
expand
$ hg paths dupe
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/b#tip
Thomas Arendsen Hein
paths: Add support for -q/--quiet...
r14331 $ hg paths -q dupe
$ hg paths unknown
not found!
[1]
$ hg paths -q unknown
[1]
Yuya Nishihara
paths: port to generic templater...
r27728
formatter output with paths:
$ echo 'dupe:pushurl = https://example.com/dupe' >> .hg/hgrc
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 $ hg paths -Tjson | sed 's|\\\\|\\|g'
Yuya Nishihara
paths: port to generic templater...
r27728 [
{
"name": "dupe",
"pushurl": "https://example.com/dupe",
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 "url": "$TESTTMP/b#tip"
Yuya Nishihara
paths: port to generic templater...
r27728 },
{
"name": "expand",
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 "url": "$TESTTMP/a/$SOMETHING/bar"
Yuya Nishihara
paths: port to generic templater...
r27728 }
]
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 $ hg paths -Tjson dupe | sed 's|\\\\|\\|g'
Yuya Nishihara
paths: port to generic templater...
r27728 [
{
"name": "dupe",
"pushurl": "https://example.com/dupe",
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 "url": "$TESTTMP/b#tip"
Yuya Nishihara
paths: port to generic templater...
r27728 }
]
$ hg paths -Tjson -q unknown
[
]
[1]
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414 log template:
(behaves as a {name: path-string} dict by default)
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{peerurls}\n'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe=$TESTTMP/b#tip expand=$TESTTMP/a/$SOMETHING/bar
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{join(peerurls, "\n")}\n'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe=$TESTTMP/b#tip
expand=$TESTTMP/a/$SOMETHING/bar
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{peerurls % "{name}: {url}\n"}'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe: $TESTTMP/b#tip
expand: $TESTTMP/a/$SOMETHING/bar
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{get(peerurls, "dupe")}\n'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/b#tip
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414
Yuya Nishihara
templatekw: make experimental {peerpaths} return a single-level dict (BC)...
r34539 (sub options can be populated by map/dot operation)
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414
Yuya Nishihara
templatekw: make experimental {peerpaths} return a single-level dict (BC)...
r34539 $ hg log -rnull \
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 > -T '{get(peerurls, "dupe") % "url: {url}\npushurl: {pushurl}\n"}'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 url: $TESTTMP/b#tip
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414 pushurl: https://example.com/dupe
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{peerurls.dupe.pushurl}\n'
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414 https://example.com/dupe
Yuya Nishihara
templatekw: make experimental {peerpaths} return a single-level dict (BC)...
r34539 (in JSON, it's a dict of urls)
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414
Yuya Nishihara
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{peerurls|json}\n' | sed 's|\\\\|/|g'
Yuya Nishihara
templatekw: make experimental {peerpaths} return a single-level dict (BC)...
r34539 {"dupe": "$TESTTMP/b#tip", "expand": "$TESTTMP/a/$SOMETHING/bar"}
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414
password should be masked in plain output, but not in machine-readable/template
output:
Yuya Nishihara
paths: port to generic templater...
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
templatekw: rename peerpaths to peerurls per naming convention (BC)...
r34540 $ hg log -rnull -T '{get(peerurls, "insecure")}\n'
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414 http://foo:insecure@example.com/
Yuya Nishihara
paths: port to generic templater...
r27728
Yuya Nishihara
zeroconf: forward all arguments passed to ui.configitems() wrapper...
r28038 zeroconf wraps ui.configitems(), which shouldn't crash at least:
$ hg paths --config extensions.zeroconf=
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dupe = $TESTTMP/b#tip
Yuya Nishihara
zeroconf: forward all arguments passed to ui.configitems() wrapper...
r28038 dupe:pushurl = https://example.com/dupe
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 expand = $TESTTMP/a/$SOMETHING/bar
Yuya Nishihara
zeroconf: forward all arguments passed to ui.configitems() wrapper...
r28038 insecure = http://foo:***@example.com/
Adrian Buehlmann
test-paths.t: 'file:' disables [paths] entries for clone dest
r13797 $ cd ..
Gregory Szorc
ui: support declaring path push urls as sub-options...
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
test-paths.t: 'file:' disables [paths] entries for clone dest
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
tests: add missing trailing 'cd ..'...
r16913 $ cd ..