performance: do not stat() things when not required
Ignore unknown files if we don't need them (eg in hg diff).
It slows things down a little bit for big trees (kernel repo), since _join()
is called for each file instead of for each directory.
fix issue567
#!/bin/sh
rm -rf a
hg init a
cd a
echo a > a
hg ci -Am0
hg tag t1 # 1
hg tag --remove t1 # 2
hg co 1
hg tag -r0 t1
hg tags