summaryrefslogtreecommitdiff
path: root/git-diff-script
blob: 99ff2640f127e36fd4351557e27e7b8a683a07ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
rev=($(git-rev-parse --revs-only "$@")) || exit
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)
	case "${rev[1]}" in
	^?*)
		begin=$(echo "${rev[1]}" | tr -d '^')
		end="${rev[0]}" ;;
	*)
		begin="${rev[0]}"
		end="${rev[1]}"	;;
	esac
	git-diff-tree -M -p $flags $begin $end $files;;
*)
	echo "I don't understand"
	exit 1;;
esac