patch: be more tolerant to diffstat failures (issue 865)
Sometimes, revisions cannot be represented by a regular diff, only a git diff
would capture binary files or permission changes. diffstat cannot handle git
patches and will output "0 files changed" when fed with an empty diff. We
cannot consider the latter to be an error, unless we rewrite diffstat to handle
these correctly.
adding a
adding b
adding dir.h/foo
adding t.h
adding t/b
adding t/e.h
adding t/x
hg locate a
a
locate succeeded
hg locate NONEXISTENT
locate failed
hg locate
a
b
dir.h/foo
t.h
t/b
t/e.h
t/x
hg locate a
hg locate NONEXISTENT
hg locate relpath:NONEXISTENT
hg locate
b
dir.h/foo
t.h
t/b
t/e.h
t/x
hg locate -r 0 a
a
hg locate -r 0 NONEXISTENT
hg locate -r 0 relpath:NONEXISTENT
hg locate -r 0
a
b
dir.h/foo
t.h
t/b
t/e.h
t/x
% -I/-X with relative path should work
hg locate
b
dir.h/foo
t.h
t/b
t/e.h
t/x
hg locate -I ../t
t/b
t/e.h
t/x
hg locate t/**
t/b
t/e.h
t/x
hg locate b
../b
../t/b
hg locate *.h
../t.h
../t/e.h
hg locate path:t/x
../t/x
hg locate re:.*\.h$
../t.h
../t/e.h
hg locate -r 0 b
../b
../t/b
hg locate -r 0 *.h
../t.h
../t/e.h
hg locate -r 0 path:t/x
../t/x
hg locate -r 0 re:.*\.h$
../t.h
../t/e.h