view tests/test-command-template @ 8781:385a2d94885e

hgrc.5: fix quoting of literal strings The quotes would go wrong in many places due to differences between asciidoc version 8.2.7 used by Benoit and 8.4.5 used by me. Between those versions asciidoc stopped interpreting the content of `quoted strings`, and so `*` would start bold text in the old version, but do nothing in the new version. To complicate things further, `\*` would escape the bold tag in the old version, but in the new version the backslash was inserted literally into the output (because the backtick quotes it). I've now replaced backticks with non-quoting plusses and escaped backslashes as appropriate.
author Martin Geisler <mg@lazybytes.net>
date Thu, 11 Jun 2009 17:19:48 +0200
parents 5b7da468531b
children 829ac0af66a4
line wrap: on
line source

#!/bin/sh

hg init a
cd a
echo a > a
hg add a
echo line 1 > b
echo line 2 >> b
hg commit -l b -d '1000000 0' -u 'User Name <user@hostname>'
hg add b
echo other 1 > c
echo other 2 >> c
echo >> c
echo other 3 >> c
hg commit -l c -d '1100000 0' -u 'A. N. Other <other@place>'
hg add c
hg commit -m 'no person' -d '1200000 0' -u 'other@place'
echo c >> c
hg commit -m 'no user, no domain' -d '1300000 0' -u 'person'
echo foo > .hg/branch
hg commit -m 'new branch' -d '1400000 0' -u 'person'
hg co -q 3
echo other 4 >> d
hg add d
hg commit -m 'new head' -d '1500000 0' -u 'person'
hg merge -q foo
hg commit -m 'merge' -d '1500001 0' -u 'person'
# second branch starting at nullrev
hg update null
echo second > second
hg add second
hg commit -m second -d '1000000 0' -u 'User Name <user@hostname>'
echo third > third
hg add third
hg commit -m third -d "2020-01-01 10:01"

# make sure user/global hgrc does not affect tests
echo '[ui]' > .hg/hgrc
echo 'logtemplate =' >> .hg/hgrc
echo 'style =' >> .hg/hgrc

echo '# default style is like normal output'
echo '#  normal'
hg log > log.out
hg log --style default > style.out
diff -u log.out style.out
echo '#  verbose'
hg log -v > log.out
hg log -v --style default > style.out
diff -u log.out style.out
echo '#  debug'
hg log --debug > log.out
hg log --debug --style default > style.out
diff -u log.out style.out

echo '# revision with no copies (used to print a traceback)'
hg tip -v --template '\n'

echo '# compact style works'
hg log --style compact
hg log -v --style compact
hg log --debug --style compact

echo '# error if style not readable'
touch q
chmod 0 q
hg log --style ./q

echo '# error if no style'
hg log --style notexist

echo '# error if style missing key'
echo 'q = q' > t
hg log --style ./t

echo '# error if include fails'
echo 'changeset = q' >> t
hg log --style ./t

echo '# include works'
rm q
echo '{rev}' > q
hg log --style ./t

echo '# ui.style works'
echo '[ui]' > .hg/hgrc
echo 'style = t' >> .hg/hgrc
hg log

echo '# issue338'
hg log --style=changelog > changelog
cat changelog

echo "# keys work"
for key in author branches date desc file_adds file_dels file_mods \
        files manifest node parents rev tags diffstat; do
    for mode in '' --verbose --debug; do
        hg log $mode --template "$key$mode: {$key}\n"
    done
done

echo '# filters work'
hg log --template '{author|domain}\n'
hg log --template '{author|person}\n'
hg log --template '{author|user}\n'
hg log --template '{date|age}\n' > /dev/null || exit 1
hg log -l1 --template '{date|age}\n' 
hg log --template '{date|date}\n'
hg log --template '{date|isodate}\n'
hg log --template '{date|isodatesec}\n'
hg log --template '{date|rfc822date}\n'
hg log --template '{desc|firstline}\n'
hg log --template '{node|short}\n'
hg log --template '<changeset author="{author|xmlescape}"/>\n'

echo '# formatnode filter works'
echo '#  quiet'
hg -q log -r 0 --template '{node|formatnode}\n'
echo '#  normal'
hg log -r 0 --template '{node|formatnode}\n'
echo '#  verbose'
hg -v log -r 0 --template '{node|formatnode}\n'
echo '#  debug'
hg --debug log -r 0 --template '{node|formatnode}\n'

echo '# error on syntax'
echo 'x = "f' >> t
hg log

echo '# done'