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
EVERYTHING
diff -r ec612a6291f1 alpha/one
--- a/alpha/one
+++ b/alpha/one
@@ -0,0 +1,1 @@
+1
diff -r ec612a6291f1 beta/two
--- a/beta/two
+++ b/beta/two
@@ -0,0 +1,1 @@
+2
BETA ONLY
diff -r ec612a6291f1 beta/two
--- a/beta/two
+++ b/beta/two
@@ -0,0 +1,1 @@
+2
INSIDE BETA
diff -r ec612a6291f1 beta/two
--- a/beta/two
+++ b/beta/two
@@ -0,0 +1,1 @@
+2