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: repository a not found!255abort: error: Connection refused255abort: repository a not found!255abort: destination '../a' already exists255abort: repository a not found!255abort: destination 'q' already exists