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
% Repository data:
Some stuff to ponder very carefully.
% Fresh checkout:
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Copyright 2046, The Masters
Some stuff to ponder very carefully.
M stuff.txt
% Problem encoding:
abort: missing header "Copyright 2046, The Masters" in morestuff.txt
M stuff.txt
A morestuff.txt