Linus Torvalds | 940c1bb | 2005-06-13 15:09:34 -0700 | [diff] [blame] | 1 | #!/bin/sh |
Linus Torvalds | d1918a7 | 2005-07-14 09:29:35 -0700 | [diff] [blame] | 2 | . git-sh-setup-script || die "Not a git archive" |
| 3 | |
Linus Torvalds | 940c1bb | 2005-06-13 15:09:34 -0700 | [diff] [blame] | 4 | rev=($(git-rev-parse --revs-only "$@")) |
Linus Torvalds | 9e9824b | 2005-07-06 10:09:58 -0700 | [diff] [blame] | 5 | flags=($(git-rev-parse --no-revs --flags "$@")) |
| 6 | files=($(git-rev-parse --no-revs --no-flags "$@")) |
Linus Torvalds | 940c1bb | 2005-06-13 15:09:34 -0700 | [diff] [blame] | 7 | case "${#rev[*]}" in |
| 8 | 0) |
Linus Torvalds | 753fd78 | 2005-06-17 15:34:19 -0700 | [diff] [blame] | 9 | git-diff-files -M -p "$@";; |
Linus Torvalds | 940c1bb | 2005-06-13 15:09:34 -0700 | [diff] [blame] | 10 | 1) |
Linus Torvalds | 753fd78 | 2005-06-17 15:34:19 -0700 | [diff] [blame] | 11 | git-diff-cache -M -p "$@";; |
Linus Torvalds | 940c1bb | 2005-06-13 15:09:34 -0700 | [diff] [blame] | 12 | 2) |
| 13 | begin=$(echo "${rev[1]}" | tr -d '^') |
| 14 | end="${rev[0]}" |
Linus Torvalds | 9e9824b | 2005-07-06 10:09:58 -0700 | [diff] [blame] | 15 | git-diff-tree -M -p $flags $begin $end $files;; |
Linus Torvalds | 940c1bb | 2005-06-13 15:09:34 -0700 | [diff] [blame] | 16 | *) |
| 17 | echo "I don't understand" |
| 18 | exit 1;; |
| 19 | esac |