Move commands.forget over to using new walk code.
With no names, it now recursively forgets everything, as is the default
behaviour of other commands. And prints the names of all files it
hasn't specifically been told to forget.
#!/bin/sh
set -ex
mkdir r1
cd r1
hg init
echo a > a
hg addremove
hg commit -m "1" -d "0 0"
hg clone . ../r2
cd ../r2
hg up
echo abc > a
hg diff > ../d
sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" < ../d
cd ../r1
echo b > b
echo a2 > a
hg addremove
hg commit -m "2" -d "0 0"
cd ../r2
hg -q pull ../r1
hg status
hg --debug up
hg --debug up -m
hg parents
hg -v history
hg diff > ../d
sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" < ../d