tests: require regexes in unified tests to be marked with " (re)"
Consider this test:
$ hg glog --template '{rev}:{node|short} "{desc}"\n'
@ 2:20c4f79fd7ac "3"
|
| o 1:38f24201dcab "2"
|/
o 0:2a18120dc1c9 "1"
Because each line beginning with "|" can be compiled as a regular
expression (equivalent to ".*|"), they will match any output.
Similarly:
$ echo foo
The blank output line can be compiled as a regular expression and will
also match any output.
With this patch, none of the above output lines will be matched as
regular expressions. A line must end in " (re)" in order to be matched
as one.
Lines are still matched literally first, so the following will pass:
$ echo 'foo (re)'
foo (re)
$ echo "invalid" > $HGRCPATH
$ hg version
hg: parse error at .*/\.hgrc:1: invalid (re)
[255]
$ echo "" > $HGRCPATH
issue1199: escaping
$ 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
$ p=`pwd`
$ cd foobar
$ cat .hg/hgrc
[paths]
default = .*/foo%bar (re)
$ hg paths
default = .*/foo%bar (re)
$ hg showconfig
bundle\.mainreporoot=.*/foobar (re)
paths\.default=.*/foo%bar (re)
$ cd ..
issue1829: wrong indentation
$ echo '[foo]' > $HGRCPATH
$ echo ' x = y' >> $HGRCPATH
$ hg version
hg: parse error at .*/\.hgrc:2: x = y (re)
[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 .*/\.hgrc:1: cannot include /path/to/nowhere/no-such-file \(No such file or directory\) (re)
[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
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: .*/\.hgrc (re)
.*/\.hgrc:13: alias\.log=log -g (re)
.*/\.hgrc:11: defaults\.identify=-n (re)
.*/\.hgrc:2: ui\.debug=true (re)
.*/\.hgrc:3: ui\.fallbackencoding=ASCII (re)
.*/\.hgrc:4: ui\.quiet=true (re)
.*/\.hgrc:5: ui\.slash=true (re)
.*/\.hgrc:6: ui\.traceback=true (re)
.*/\.hgrc:7: ui\.verbose=true (re)
.*/\.hgrc:8: ui\.style=~/.hgstyle (re)
.*/\.hgrc:9: ui\.logtemplate=\{node\} (re)
plain hgrc
$ HGPLAIN=; export HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
read config from: .*/\.hgrc (re)
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
none: ui.quiet=False