test-config.t
226 lines
| 4.3 KiB
| text/troff
|
Tads3Lexer
/ tests / test-config.t
|
r19086 | hide outer repo | ||
$ hg init | ||||
|
r22275 | Invalid syntax: no value | ||
$ cat > .hg/hgrc << EOF | ||||
> novaluekey | ||||
> EOF | ||||
$ hg showconfig | ||||
|
r35394 | hg: parse error at $TESTTMP/.hg/hgrc:1: novaluekey | ||
|
r22275 | [255] | ||
Invalid syntax: no key | ||||
$ cat > .hg/hgrc << EOF | ||||
> =nokeyvalue | ||||
> EOF | ||||
$ hg showconfig | ||||
|
r35394 | hg: parse error at $TESTTMP/.hg/hgrc:1: =nokeyvalue | ||
|
r22275 | [255] | ||
|
r22276 | Test hint about invalid syntax from leading white space | ||
$ cat > .hg/hgrc << EOF | ||||
> key=value | ||||
> EOF | ||||
$ hg showconfig | ||||
|
r35394 | hg: parse error at $TESTTMP/.hg/hgrc:1: key=value | ||
|
r22276 | unexpected leading whitespace | ||
[255] | ||||
$ cat > .hg/hgrc << EOF | ||||
> [section] | ||||
> key=value | ||||
> EOF | ||||
$ hg showconfig | ||||
|
r35394 | hg: parse error at $TESTTMP/.hg/hgrc:1: [section] | ||
|
r22276 | unexpected leading whitespace | ||
[255] | ||||
|
r22275 | Reset hgrc | ||
$ echo > .hg/hgrc | ||||
|
r19086 | Test case sensitive configuration | ||
|
r23172 | $ cat <<EOF >> $HGRCPATH | ||
> [Section] | ||||
> KeY = Case Sensitive | ||||
> key = lower case | ||||
> EOF | ||||
|
r19086 | |||
$ hg showconfig Section | ||||
Section.KeY=Case Sensitive | ||||
Section.key=lower case | ||||
|
r29950 | $ hg showconfig Section -Tjson | ||
[ | ||||
{ | ||||
|
r42934 | "defaultvalue": null, | ||
|
r29950 | "name": "Section.KeY", | ||
|
r30986 | "source": "*.hgrc:*", (glob) | ||
|
r29950 | "value": "Case Sensitive" | ||
}, | ||||
{ | ||||
|
r42934 | "defaultvalue": null, | ||
|
r29950 | "name": "Section.key", | ||
|
r30986 | "source": "*.hgrc:*", (glob) | ||
|
r29950 | "value": "lower case" | ||
} | ||||
] | ||||
$ hg showconfig Section.KeY -Tjson | ||||
[ | ||||
{ | ||||
|
r42933 | "defaultvalue": null, | ||
|
r29950 | "name": "Section.KeY", | ||
|
r30986 | "source": "*.hgrc:*", (glob) | ||
|
r29950 | "value": "Case Sensitive" | ||
} | ||||
] | ||||
$ hg showconfig -Tjson | tail -7 | ||||
{ | ||||
|
r42934 | "defaultvalue": null, | ||
|
r29950 | "name": "*", (glob) | ||
"source": "*", (glob) | ||||
"value": "*" (glob) | ||||
} | ||||
] | ||||
|
r30618 | Test empty config source: | ||
$ cat <<EOF > emptysource.py | ||||
> def reposetup(ui, repo): | ||||
|
r36748 | > ui.setconfig(b'empty', b'source', b'value') | ||
|
r30618 | > EOF | ||
$ cp .hg/hgrc .hg/hgrc.orig | ||||
$ cat <<EOF >> .hg/hgrc | ||||
> [extensions] | ||||
> emptysource = `pwd`/emptysource.py | ||||
> EOF | ||||
$ hg config --debug empty.source | ||||
read config from: * (glob) | ||||
none: value | ||||
$ hg config empty.source -Tjson | ||||
[ | ||||
{ | ||||
|
r42933 | "defaultvalue": null, | ||
|
r30618 | "name": "empty.source", | ||
"source": "", | ||||
"value": "value" | ||||
} | ||||
] | ||||
$ cp .hg/hgrc.orig .hg/hgrc | ||||
|
r19087 | Test "%unset" | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [unsettest] | ||||
> local-hgrcpath = should be unset (HGRCPATH) | ||||
> %unset local-hgrcpath | ||||
> | ||||
> global = should be unset (HGRCPATH) | ||||
> | ||||
> both = should be unset (HGRCPATH) | ||||
> | ||||
> set-after-unset = should be unset (HGRCPATH) | ||||
> EOF | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [unsettest] | ||||
> local-hgrc = should be unset (.hg/hgrc) | ||||
> %unset local-hgrc | ||||
> | ||||
> %unset global | ||||
> | ||||
> both = should be unset (.hg/hgrc) | ||||
> %unset both | ||||
> | ||||
> set-after-unset = should be unset (.hg/hgrc) | ||||
> %unset set-after-unset | ||||
> set-after-unset = should be set (.hg/hgrc) | ||||
> EOF | ||||
$ hg showconfig unsettest | ||||
unsettest.set-after-unset=should be set (.hg/hgrc) | ||||
|
r22316 | |||
Test exit code when no config matches | ||||
$ hg config Section.idontexist | ||||
[1] | ||||
|
r29412 | |||
sub-options in [paths] aren't expanded | ||||
$ cat > .hg/hgrc << EOF | ||||
> [paths] | ||||
> foo = ~/foo | ||||
> foo:suboption = ~/foo | ||||
> EOF | ||||
$ hg showconfig paths | ||||
paths.foo:suboption=~/foo | ||||
paths.foo=$TESTTMP/foo | ||||
|
r31108 | |||
edit failure | ||||
$ HGEDITOR=false hg config --edit | ||||
abort: edit failed: false exited with status 1 | ||||
[255] | ||||
|
r31685 | |||
config affected by environment variables | ||||
$ EDITOR=e1 VISUAL=e2 hg config --debug | grep 'ui\.editor' | ||||
$VISUAL: ui.editor=e2 | ||||
$ VISUAL=e2 hg config --debug --config ui.editor=e3 | grep 'ui\.editor' | ||||
--config: ui.editor=e3 | ||||
$ PAGER=p1 hg config --debug | grep 'pager\.pager' | ||||
$PAGER: pager.pager=p1 | ||||
$ PAGER=p1 hg config --debug --config pager.pager=p2 | grep 'pager\.pager' | ||||
--config: pager.pager=p2 | ||||
|
r33329 | |||
verify that aliases are evaluated as well | ||||
$ hg init aliastest | ||||
$ cd aliastest | ||||
$ cat > .hg/hgrc << EOF | ||||
> [ui] | ||||
> user = repo user | ||||
> EOF | ||||
$ touch index | ||||
$ unset HGUSER | ||||
$ hg ci -Am test | ||||
adding index | ||||
$ hg log --template '{author}\n' | ||||
repo user | ||||
$ cd .. | ||||
alias has lower priority | ||||
$ hg init aliaspriority | ||||
$ cd aliaspriority | ||||
$ cat > .hg/hgrc << EOF | ||||
> [ui] | ||||
> user = alias user | ||||
> username = repo user | ||||
> EOF | ||||
$ touch index | ||||
$ unset HGUSER | ||||
$ hg ci -Am test | ||||
adding index | ||||
$ hg log --template '{author}\n' | ||||
repo user | ||||
$ cd .. | ||||
|
r42262 | |||
configs should be read in lexicographical order | ||||
$ mkdir configs | ||||
$ for i in `$TESTDIR/seq.py 10 99`; do | ||||
> printf "[section]\nkey=$i" > configs/$i.rc | ||||
> done | ||||
$ HGRCPATH=configs hg config section.key | ||||
99 | ||||