git-commit-vandalism/git-diff-script
Junio C Hamano 792fe559d0 Fix "git-diff-script A B"
When "git-diff-script A..B" notation was introduced, it ended up breaking
the traditional two revisions notation.

[jc: there are other issues with the current "git diff" I would like to
 address, but they would be left to later rounds.  For example, -M and -p flags
 should not be hardcoded default, and it shouldn't be too hard to rewrite
 the script without using shell arrays.]

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-22 18:32:38 -07:00

24 lines
478 B
Bash
Executable File

#!/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