view tests/test-log @ 11635:4da35e02b67c

log: do not redefine cachefunc in walkchangerevs The same variable is defined a few blocks earlier. The first phases in walkchangerevs should in fact fill that cache, and allow faster lookups in the last phase. Redefining and overriding this cached function, (knowing that it will be called with the same arguments) defeats the caching purpose.
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Tue, 20 Jul 2010 14:42:05 +0900
parents dbb98d8fbcaf
children 99cafcae25d9
line wrap: on
line source

#!/bin/sh

hg init a

cd a
echo a > a
hg ci -Ama -d '1 0'

hg cp a b
hg ci -mb -d '2 0'

mkdir dir
hg mv b dir
hg ci -mc -d '3 0'

hg mv a b
echo a > d
hg add d
hg ci -md -d '4 0'

hg mv dir/b e
hg ci -me -d '5 0'

hg log a
echo % -f, directory
hg log -f dir
echo % -f, but no args
hg log -f
echo % one rename
hg log -vf a
echo % many renames
hg log -vf e

echo % log -pf dir/b
hg log -pf dir/b
echo % log -vf dir/b
hg log -vf dir/b

echo '% log copies with --copies'
hg log -vC --template '{rev} {file_copies}\n'
echo '% log copies switch without --copies, with old filecopy template'
hg log -v --template '{rev} {file_copies_switch%filecopy}\n'
echo '% log copies switch with --copies'
hg log -vC --template '{rev} {file_copies_switch}\n'

echo '% log copies with hardcoded style and with --style=default'
hg log -vC -r4
hg log -vC -r4 --style=default

echo % log copies, non-linear manifest
hg up -C 3
hg mv dir/b e
echo foo > foo
hg ci -Ame2 -d '6 0'
hg log -v --template '{rev} {file_copies}\n' -r 5

echo % log copies, execute bit set
chmod +x e
hg ci -me3 -d '7 0'
hg log -v --template '{rev} {file_copies}\n' -r 6

echo '% log -p d'
hg log -pv d

echo '% log --removed file'
hg log --removed -v a
echo '% log --removed revrange file'
hg log --removed -v -r0:2 a

# log --follow tests
hg init ../follow
cd ../follow

echo base > base
hg ci -Ambase -d '1 0'

echo r1 >> base
hg ci -Amr1 -d '1 0'
echo r2 >> base
hg ci -Amr2 -d '1 0'

hg up -C 1
echo b1 > b1
hg ci -Amb1 -d '1 0'

echo % log -f
hg log -f

hg up -C 0
echo b2 > b2
hg ci -Amb2 -d '1 0'

echo % log -f -r 1:tip
hg log -f -r 1:tip

hg up -C 3
hg merge tip

echo % log -r .  with two parents
hg log -r .

hg ci -mm12 -d '1 0'

echo % log -r .  with one parent
hg log -r .

echo postm >> b1
hg ci -Amb1.1 -d'1 0'

echo % log --follow-first
hg log --follow-first

echo % log -P 2
hg log -P 2

echo '% log -r tip -p --git'
hg log -r tip -p --git

echo '% log -r ""'
hg log -r ''

echo '% log -r <some unknown node id>'
hg log -r 1000000000000000000000000000000000000000

echo '% log -k r1'
hg log -k r1

echo '% log -d -1'
hg log -d -1

echo '% log -p -l2 --color=always'
hg --config extensions.color= --config color.mode=ansi \
    log -p -l2 --color=always

echo '% log -r tip --stat'
hg log -r tip --stat

cd ..

hg init usertest
cd usertest

echo a > a
hg ci -A -m "a" -u "User One <user1@example.org>"
echo b > b
hg ci -A -m "b" -u "User Two <user2@example.org>"

hg log -u "User One <user1@example.org>"
hg log -u "user1" -u "user2"
hg log -u "user3"

cd ..

hg init branches
cd branches

echo a > a
hg ci -A -m "commit on default"
hg branch test
echo b > b
hg ci -A -m "commit on test"

hg up default
echo c > c
hg ci -A -m "commit on default"
hg up test
echo c > c
hg ci -A -m "commit on test"

echo '% log -b default'
hg log -b default

echo '% log -b test'
hg log -b test

echo '% log -b dummy'
hg log -b dummy

echo '% log -b .'
hg log -b .

echo '% log -b default -b test'
hg log -b default -b test

echo '% log -b default -b .'
hg log -b default -b .

echo '% log -b . -b test'
hg log -b . -b test

echo '% log -b 2'
hg log -b 2

echo '% log -p --cwd dir (in subdir)'
mkdir dir
hg log -p --cwd dir

echo '% log -p -R repo'
cd dir
hg log -p -R .. ../a


exit 0