log: follow filenames through renames (issue647)
In commands.log a displayer was initialized from
cmdutil.show_changeset() with the initial matchfn (which designates
the specified files which only is correct in the highest revision in
the range). prep() is handed the correct list of files, but
displayer.show() didn't use that list but keept using the original
matchfn.
The matchfn argument to cmdutil.show_changeset() wasn't specified in
other places and is only used in .show(), so now we give the matchfn
as an optional parameter to .show().
We do however still have to detect --patch and --stat from opts in
show_changeset() and let it imply a matchall, but that can now be
overruled with the new .show() matchfn parameter.
#!/bin/sh
"$TESTDIR/hghave" icasefs || exit 80
echo '% test file addition with bad case'
hg init repo1
cd repo1
echo a > a
hg add A
hg st
hg ci -m adda
hg manifest
cd ..
echo '% test case collision on rename (issue 750)'
hg init repo2
cd repo2
echo a > a
hg --debug ci -Am adda
hg mv a A
# 'a' used to be removed under windows
test -f a || echo 'a is missing'
hg st
cd ..
echo '% test case collision between revisions (issue 912)'
hg init repo3
cd repo3
echo a > a
hg ci -Am adda
hg rm a
hg ci -Am removea
echo A > A
# on linux hfs keeps the old case stored, force it
mv a aa
mv aa A
hg ci -Am addA
# Used to fail under case insensitive fs
hg up -C 0
hg up -C
cd ..