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