##// END OF EJS Templates
debug: add a method to check the state of, and built an SSL cert chain...
debug: add a method to check the state of, and built an SSL cert chain This is only useful on Windows, and avoids the need to use Internet Explorer to build the certificate chain. I can see this being extended in the future to print information about the certificate(s) to help debug issues on any platform. Maybe even perform some of the python checks listed on the secure connections wiki page. But for now, all I need is 1) a command that can be invoked in a setup script to ensure the certificate is installed, and 2) a command that the user can run if/when a certificate changes in the future. It would have been nice to leverage the sslutil library to pick up host specific settings, but attempting to use sslutil.wrapsocket() failed the 'not sslsocket.cipher()' check in it and aborted. The output is a little more chatty than some commands, but I've seen the update take 10+ seconds, and this is only a debug command.

File last commit:

r33430:21299e1f default
r33493:9a9f9521 default
Show More
test-paths.t
222 lines | 5.0 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
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 comparing with $TESTTMP/b (glob)
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
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 comparing with $TESTTMP/b (glob)
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
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 expand = $TESTTMP/a/$SOMETHING/bar (glob)
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ SOMETHING=foo hg paths
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 expand = $TESTTMP/a/foo/bar (glob)
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 #if msys
$ SOMETHING=//foo hg paths
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
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
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
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
Yuya Nishihara
paths: include #fragment again...
r27320 $TESTTMP/b#tip (glob)
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
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 "url": "$TESTTMP/b#tip" (glob)
Yuya Nishihara
paths: port to generic templater...
r27728 },
{
"name": "expand",
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 "url": "$TESTTMP/a/$SOMETHING/bar" (glob)
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
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 "url": "$TESTTMP/b#tip" (glob)
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)
$ 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
test-paths: mask out JSON specific path differences for Windows...
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
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: export ui.paths as {peerpaths}...
r33414 $ hg log -rnull -T '{get(peerpaths, "insecure")}\n'
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=
dupe = $TESTTMP/b#tip (glob)
dupe:pushurl = https://example.com/dupe
expand = $TESTTMP/a/$SOMETHING/bar (glob)
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 ..