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" symlink || exit 80
hg init a
cd a
ln -s nothing dangling
hg commit -m 'commit symlink without adding' dangling
hg add dangling
hg commit -m 'add symlink'
hg tip -v
hg manifest --debug
echo '% rev 0:'
$TESTDIR/readlink.py dangling
rm dangling
ln -s void dangling
hg commit -m 'change symlink'
echo '% rev 1:'
$TESTDIR/readlink.py dangling
echo '% modifying link'
rm dangling
ln -s empty dangling
$TESTDIR/readlink.py dangling
echo '% reverting to rev 0:'
hg revert -r 0 -a
$TESTDIR/readlink.py dangling
echo '% backups:'
$TESTDIR/readlink.py *.orig
rm *.orig
hg up -C
echo '% copies'
hg cp -v dangling dangling2
hg st -Cmard
$TESTDIR/readlink.py dangling dangling2
echo '% issue995'
hg up -C
mkdir dir
ln -s dir dirlink
hg ci -qAm 'add dirlink'
mkdir newdir
mv dir newdir/dir
mv dirlink newdir/dirlink
hg mv -A dirlink newdir/dirlink