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: edit failed: false exited with status 1transaction abort!rollback completedabort: edit failed: false exited with status 1transaction abort!rollback completed