1#!/bin/sh
2rev=($(git-rev-parse --revs-only "$@")) || exit
3flags=($(git-rev-parse --no-revs --flags "$@"))
4files=($(git-rev-parse --no-revs --no-flags "$@"))
5case "${#rev[*]}" in
60)
7 git-diff-files -M -p "$@";;
81)
9 git-diff-cache -M -p "$@";;
102)
11 case "${rev[1]}" in
12 ^?*)
13 begin=$(echo "${rev[1]}" | tr -d '^')
14 end="${rev[0]}" ;;
15 *)
16 begin="${rev[0]}"
17 end="${rev[1]}" ;;
18 esac
19 git-diff-tree -M -p $flags $begin $end $files;;
20*)
21 echo "I don't understand"
22 exit 1;;
23esac