##// END OF EJS Templates
filelog: extract metadata parsing and packing...
filelog: extract metadata parsing and packing _parsemeta returns the dictionary and a list of keys in the order they appear in metadata. This can be used to repack the dictionary in the same order. _packmeta creates metadata from a dictionary and an optional key-order list. In _parsemeta, we use slices and re.search indead of str.index so we can accept both buffers and strings.

File last commit:

r13849:9f97de15 default
r14074:e8271159 default
Show More
test-hgrc.t
171 lines | 4.2 KiB | text/troff | Tads3Lexer
Use hgrc within $TESTTMP
$ HGRCPATH=`pwd`/hgrc
$ export HGRCPATH
Basic syntax error
$ echo "invalid" > $HGRCPATH
$ hg version
hg: parse error at $TESTTMP/hgrc:1: invalid
[255]
$ echo "" > $HGRCPATH
Issue1199: Can't use '%' in hgrc (eg url encoded username)
$ 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
$ cat .hg/hgrc
[paths]
default = $TESTTMP/foo%bar
$ hg paths
default = $TESTTMP/foo%bar
$ hg showconfig
bundle.mainreporoot=$TESTTMP/foobar
paths.default=$TESTTMP/foo%bar
$ cd ..
issue1829: wrong indentation
$ echo '[foo]' > $HGRCPATH
$ echo ' x = y' >> $HGRCPATH
$ hg version
hg: parse error at $TESTTMP/hgrc:2: x = y
[255]
$ 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
$ hg version
hg: parse error at $TESTTMP/hgrc:1: cannot include /path/to/nowhere/no-such-file (No such file or directory)
[255]
$ unset FAKEPATH
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 ..
$ hg showconfig
ui.username=$FAKEUSER
$ unset FAKEUSER
$ HGUSER=$olduser
$ export HGUSER
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]
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
$ hg showconfig
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}
plain hgrc
$ HGPLAIN=; export HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
read config from: $TESTTMP/hgrc
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
none: ui.quiet=False
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
plain: ['']
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
none: ui.quiet=False
$ unset HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
plain: ['']
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
none: ui.quiet=False
$ HGPLAINEXCEPT=i18n; export HGPLAINEXCEPT
$ hg showconfig --config ui.traceback=True --debug
plain: ['i18n']
read config from: $TESTTMP/hgrc
$TESTTMP/hgrc:15: extensions.plain=./plain.py
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
none: ui.quiet=False