##// END OF EJS Templates
hgweb: do not ignore [auth] if url has a username (issue2822)...
hgweb: do not ignore [auth] if url has a username (issue2822) The [auth] section was ignored when handling URLs like: http://user@example.com/foo Instead, we look in [auth] for an entry matching the URL and supplied user name. Entries without username can match URL with a username. Prefix length ties are resolved in favor of entries matching the username. With: foo.prefix = http://example.org foo.username = user foo.password = password bar.prefix = http://example.org/bar and the input URL: http://user@example.org/bar the 'bar' entry will be selected because of prefix length, therefore prompting for a password. This behaviour ensure that entries selection is consistent when looking for credentials or for certificates, and that certificates can be picked even if their entries do no define usernames while the URL does. Additionally, entries without a username matched against a username are returned as if they did have requested username set to avoid prompting again for a username if the password is not set. v2: reparse the URL in readauthforuri() to handle HTTP and HTTPS similarly. v3: allow unset usernames to match URL usernames to pick certificates. Resolve prefix length ties in favor of entries with usernames.

File last commit:

r14992:188936b3 stable
r15005:4a43e23b 1.9.1 stable
Show More
test-hgrc.t
189 lines | 4.7 KiB | text/troff | Tads3Lexer
Mads Kiilerich
tests: remove redundant globs...
r12640 Use hgrc within $TESTTMP
$ HGRCPATH=`pwd`/hgrc
$ export HGRCPATH
Basic syntax error
Brodie Rao
tests: unify test-hgrc
r12014 $ echo "invalid" > $HGRCPATH
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg version
Mads Kiilerich
tests: remove redundant globs...
r12640 hg: parse error at $TESTTMP/hgrc:1: invalid
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 [255]
Brodie Rao
tests: unify test-hgrc
r12014 $ echo "" > $HGRCPATH
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1199: Can't use '%' in hgrc (eg url encoded username)
Brodie Rao
tests: unify test-hgrc
r12014
$ hg init "foo%bar"
$ hg clone "foo%bar" foobar
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd foobar
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ cat .hg/hgrc
Brodie Rao
tests: unify test-hgrc
r12014 [paths]
Martin Geisler
tests: use $TESTTMP more and use (glob) less...
r13572 default = $TESTTMP/foo%bar
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg paths
Martin Geisler
tests: use $TESTTMP more and use (glob) less...
r13572 default = $TESTTMP/foo%bar
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg showconfig
Martin Geisler
tests: use $TESTTMP more and use (glob) less...
r13572 bundle.mainreporoot=$TESTTMP/foobar
paths.default=$TESTTMP/foo%bar
Brodie Rao
tests: unify test-hgrc
r12014 $ cd ..
issue1829: wrong indentation
$ echo '[foo]' > $HGRCPATH
$ echo ' x = y' >> $HGRCPATH
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg version
Mads Kiilerich
tests: remove redundant globs...
r12640 hg: parse error at $TESTTMP/hgrc:2: x = y
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 [255]
Brodie Rao
tests: unify test-hgrc
r12014
$ python -c "print '[foo]\nbar = a\n b\n c \n de\n fg \nbaz = bif cb \n'" \
> > $HGRCPATH
$ hg showconfig foo
foo.bar=a\nb\nc\nde\nfg
foo.baz=bif cb
$ FAKEPATH=/path/to/nowhere
$ export FAKEPATH
$ echo '%include $FAKEPATH/no-such-file' > $HGRCPATH
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg version
Matt Mackall
tests: glob version number in test-hgrc
r14491 Mercurial Distributed SCM (version *) (glob)
Matt Mackall
tests: update for handling of missing hgrc includes
r14489 (see http://mercurial.selenic.com for more information)
Copyright (C) 2005-2011 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Brodie Rao
tests: unify test-hgrc
r12014 $ unset FAKEPATH
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 make sure global options given on the cmdline take precedence
Idan Kamara
dispatch: make sure unspecified global ui options don't override old values
r14748
$ hg showconfig --config ui.verbose=True --quiet
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 ui.verbose=False
ui.debug=False
Idan Kamara
dispatch: make sure unspecified global ui options don't override old values
r14748 ui.quiet=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 $ touch foobar/untracked
$ cat >> foobar/.hg/hgrc <<EOF
> [ui]
> verbose=True
> EOF
$ hg -R foobar st -q
Brodie Rao
tests: unify test-hgrc
r12014 username expansion
$ olduser=$HGUSER
$ unset HGUSER
$ FAKEUSER='John Doe'
$ export FAKEUSER
$ echo '[ui]' > $HGRCPATH
$ echo 'username = $FAKEUSER' >> $HGRCPATH
$ hg init usertest
$ cd usertest
$ touch bar
$ hg commit --addremove --quiet -m "added bar"
$ hg log --template "{author}\n"
John Doe
$ cd ..
Nicolas Dumazet
tests: remove useless sed in test-hgrc
r12109 $ hg showconfig
Brodie Rao
tests: unify test-hgrc
r12014 ui.username=$FAKEUSER
$ unset FAKEUSER
$ HGUSER=$olduser
$ export HGUSER
Brodie Rao
showconfig: don't accept multiple sections and one config item...
r12697 showconfig with multiple arguments
$ echo "[alias]" > $HGRCPATH
$ echo "log = log -g" >> $HGRCPATH
$ echo "[defaults]" >> $HGRCPATH
$ echo "identify = -n" >> $HGRCPATH
$ hg showconfig alias defaults
alias.log=log -g
defaults.identify=-n
$ hg showconfig alias defaults.identify
abort: only one config item permitted
[255]
$ hg showconfig alias.log defaults.identify
abort: only one config item permitted
[255]
Brodie Rao
tests: unify test-hgrc
r12014 HGPLAIN
$ cd ..
$ p=`pwd`
$ echo "[ui]" > $HGRCPATH
$ echo "debug=true" >> $HGRCPATH
$ echo "fallbackencoding=ASCII" >> $HGRCPATH
$ echo "quiet=true" >> $HGRCPATH
$ echo "slash=true" >> $HGRCPATH
$ echo "traceback=true" >> $HGRCPATH
$ echo "verbose=true" >> $HGRCPATH
$ echo "style=~/.hgstyle" >> $HGRCPATH
$ echo "logtemplate={node}" >> $HGRCPATH
$ echo "[defaults]" >> $HGRCPATH
$ echo "identify=-n" >> $HGRCPATH
$ echo "[alias]" >> $HGRCPATH
$ echo "log=log -g" >> $HGRCPATH
customized hgrc
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg showconfig
Mads Kiilerich
tests: remove redundant globs...
r12640 read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:13: alias.log=log -g
$TESTTMP/hgrc:11: defaults.identify=-n
$TESTTMP/hgrc:2: ui.debug=true
$TESTTMP/hgrc:3: ui.fallbackencoding=ASCII
$TESTTMP/hgrc:4: ui.quiet=true
$TESTTMP/hgrc:5: ui.slash=true
$TESTTMP/hgrc:6: ui.traceback=true
$TESTTMP/hgrc:7: ui.verbose=true
$TESTTMP/hgrc:8: ui.style=~/.hgstyle
$TESTTMP/hgrc:9: ui.logtemplate={node}
Brodie Rao
tests: unify test-hgrc
r12014
plain hgrc
$ HGPLAIN=; export HGPLAIN
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg showconfig --config ui.traceback=True --debug
Mads Kiilerich
tests: remove redundant globs...
r12640 read config from: $TESTTMP/hgrc
Brodie Rao
tests: unify test-hgrc
r12014 none: ui.traceback=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.verbose=False
Brodie Rao
tests: unify test-hgrc
r12014 none: ui.debug=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.quiet=False
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849
plain mode with exceptions
$ cat > plain.py <<EOF
> def uisetup(ui):
> ui.write('plain: %r\n' % ui.plain())
> EOF
$ echo "[extensions]" >> $HGRCPATH
$ echo "plain=./plain.py" >> $HGRCPATH
$ HGPLAINEXCEPT=; export HGPLAINEXCEPT
$ hg showconfig --config ui.traceback=True --debug
"Yann E. MORIN"
ui: test plain mode against exceptions...
r14372 plain: True
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.verbose=False
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 none: ui.debug=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.quiet=False
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 $ unset HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
"Yann E. MORIN"
ui: test plain mode against exceptions...
r14372 plain: True
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.verbose=False
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 none: ui.debug=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.quiet=False
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 $ HGPLAINEXCEPT=i18n; export HGPLAINEXCEPT
$ hg showconfig --config ui.traceback=True --debug
"Yann E. MORIN"
ui: test plain mode against exceptions...
r14372 plain: True
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.verbose=False
Brodie Rao
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT...
r13849 none: ui.debug=True
Idan Kamara
dispatch: make sure global options on the command line take precedence...
r14992 none: ui.quiet=False