| #!/bin/sh | |
| rev=($(git-rev-parse --revs-only "$@")) | |
| flags=($(git-rev-parse --no-revs --flags "$@")) | |
| files=($(git-rev-parse --no-revs --no-flags "$@")) | |
| case "${#rev[*]}" in | |
| 0) | |
| git-diff-files -M -p "$@";; | |
| 1) | |
| git-diff-cache -M -p "$@";; | |
| 2) | |
| begin=$(echo "${rev[1]}" | tr -d '^') | |
| end="${rev[0]}" | |
| git-diff-tree -M -p $flags $begin $end $files;; | |
| *) | |
| echo "I don't understand" | |
| exit 1;; | |
| esac |