##// END OF EJS Templates
extensions: register functions always at loading extension (issue5601)...
extensions: register functions always at loading extension (issue5601) Before this patch, functions defined in extensions are registered via extra loaders only in _dispatch(). Therefore, loading extensions in other code paths like below omits registration of functions. - WSGI service - operation across repositories (e.g. subrepo) - test-duplicateoptions.py, using extensions.loadall() directly To register functions always at loading new extension, this patch moves implementation for extra loading from dispatch._dispatch() to extensions.loadall(). AFAIK, only commands module causes cyclic dependency between extensions module, but this patch imports all related modules just before extra loading in loadall(), in order to centralize them. This patch makes extensions.py depend on many other modules, even though extensions.py itself doesn't. It should be avoided if possible, but I don't have any better idea. Some other places like below aren't reasonable for extra loading, IMHO. - specific function in newly added module: existing callers of extensions.loadall() should invoke it, too - hg.repository() or so: no-repo commands aren't covered by this. BTW, this patch removes _loaded.add(name) on relocation, because dispatch._loaded is used only for extraloaders (for similar reason, "exts" variable is removed, too).

File last commit:

r28218:41dcd754 merge default
r33052:45b0e9d0 default
Show More
test-paths.t
181 lines | 3.6 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]
password should be masked in plain output, but not in machine-readable output:
$ 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
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 ..