tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
This is a part of preparation to apply checking with check-code.py on
code fragments embedded in *.t test scripts.
"primes.py" embedded in test-highlight.t causes an error of
check-commit.py below:
don't use .next(), use next(...)
But changing embedded primes.py is painful, because it is committed in
test script, and affects hash IDs. On the other hand, primes.py itself
is never executed in test script.
Therefore, this patch uses NO_CHECK_EOF as heredoc limit mark in order
to omit any checking on this code fragments.
$ echo "[extensions]" >> $HGRCPATH
$ echo "churn=" >> $HGRCPATH
create test repository
$ hg init repo
$ cd repo
$ echo a > a
$ hg ci -Am adda -u user1 -d 6:00
adding a
$ echo b >> a
$ echo b > b
$ hg ci -m changeba -u user2 -d 9:00 a
$ hg ci -Am addb -u user2 -d 9:30
adding b
$ echo c >> a
$ echo c >> b
$ echo c > c
$ hg ci -m changeca -u user3 -d 12:00 a
$ hg ci -m changecb -u user3 -d 12:15 b
$ hg ci -Am addc -u user3 -d 12:30
adding c
$ mkdir -p d/e
$ echo abc > d/e/f1.txt
$ hg ci -Am "add d/e/f1.txt" -u user1 -d 12:45 d/e/f1.txt
$ mkdir -p d/g
$ echo def > d/g/f2.txt
$ hg ci -Am "add d/g/f2.txt" -u user1 -d 13:00 d/g/f2.txt
churn separate directories
$ cd d
$ hg churn e
user1 1 ***************************************************************
churn all
$ hg churn
user1 3 ***************************************************************
user3 3 ***************************************************************
user2 2 ******************************************
churn excluding one dir
$ hg churn -X e
user3 3 ***************************************************************
user1 2 ******************************************
user2 2 ******************************************
churn up to rev 2
$ hg churn -r :2
user2 2 ***************************************************************
user1 1 *******************************
$ cd ..
churn with aliases
$ cat > ../aliases <<EOF
> user1 alias1
> user3 alias3
> not-an-alias
> EOF
churn with .hgchurn
$ mv ../aliases .hgchurn
$ hg churn
skipping malformed alias: not-an-alias
alias1 3 **************************************************************
alias3 3 **************************************************************
user2 2 *****************************************
$ rm .hgchurn
churn with column specifier
$ COLUMNS=40 hg churn
user1 3 ***********************
user3 3 ***********************
user2 2 ***************
churn by hour
$ hg churn -f '%H' -s
06 1 ****************
09 2 *********************************
12 4 ******************************************************************
13 1 ****************
churn with separated added/removed lines
$ hg rm d/g/f2.txt
$ hg ci -Am "removed d/g/f2.txt" -u user1 -d 14:00 d/g/f2.txt
$ hg churn --diffstat
user1 +3/-1 ++++++++++++++++++++++++++++++++++++++++-------------
user3 +3/-0 ++++++++++++++++++++++++++++++++++++++++
user2 +2/-0 +++++++++++++++++++++++++++
churn --diffstat with color
$ hg --config extensions.color= churn --config color.mode=ansi \
> --diffstat --color=always
user1 +3/-1 \x1b[0;32m++++++++++++++++++++++++++++++++++++++++\x1b[0m\x1b[0;31m-------------\x1b[0m (esc)
user3 +3/-0 \x1b[0;32m++++++++++++++++++++++++++++++++++++++++\x1b[0m (esc)
user2 +2/-0 \x1b[0;32m+++++++++++++++++++++++++++\x1b[0m (esc)
changeset number churn
$ hg churn -c
user1 4 ***************************************************************
user3 3 ***********************************************
user2 2 *******************************
$ echo 'with space = no-space' >> ../aliases
$ echo a >> a
$ hg commit -m a -u 'with space' -d 15:00
churn with space in alias
$ hg churn --aliases ../aliases -r tip
no-space 1 ************************************************************
$ cd ..
Issue833: ZeroDivisionError
$ hg init issue-833
$ cd issue-833
$ touch foo
$ hg ci -Am foo
adding foo
this was failing with a ZeroDivisionError
$ hg churn
test 0
$ cd ..
Ignore trailing or leading spaces in emails
$ cd repo
$ touch bar
$ hg ci -Am'bar' -u 'user4 <user4@x.com>'
adding bar
$ touch foo
$ hg ci -Am'foo' -u 'user4 < user4@x.com >'
adding foo
$ hg log -l2 --template '[{author|email}]\n'
[ user4@x.com ]
[user4@x.com]
$ hg churn -c
user1 4 *********************************************************
user3 3 ******************************************
user2 2 ****************************
user4@x.com 2 ****************************
with space 1 **************
Test multibyte sequences in names
$ echo bar >> bar
$ hg --encoding utf-8 ci -m'changed bar' -u 'El NiƱo <nino@x.com>'
$ hg --encoding utf-8 churn -ct '{author|person}'
user1 4 **********************************************************
user3 3 *******************************************
user2 2 *****************************
user4 2 *****************************
El Ni\xc3\xb1o 1 ************** (esc)
with space 1 **************
Test --template argument, with backwards compatibility
$ hg churn -t '{author|user}'
user1 4 ***************************************************************
user3 3 ***********************************************
user2 2 *******************************
nino 1 ***************
with 1 ***************
0
user4 0
$ hg churn -T '{author|user}'
user1 4 ***************************************************************
user3 3 ***********************************************
user2 2 *******************************
nino 1 ***************
with 1 ***************
0
user4 0
$ hg churn -t 'alltogether'
alltogether 11 *********************************************************
$ hg churn -T 'alltogether'
alltogether 11 *********************************************************
$ cd ..