git --diff: fix traceback when getting mode change
- use the manifest instead of the mode in the working dir
if the diff is against two revisions
- add a testcase
abort: Failed to parse .../t/.hg/hgrcFile contains no section headers.file: .../t/.hg/hgrc, line: 1'invalid\n'