If it is only about files and revisions both being handled by git
diff, would it not ne possible to do something like this?
For files
git diff -f a[PRESS TAB]
For revisions
git diff -r a[PRESS TAB]
Some sort of flag which says we are handling files or revisions.