Fix "git-diff-script A B"
authorJunio C Hamano <junkio@cox.net>
Sun, 21 Aug 2005 20:56:52 +0000 (13:56 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 23 Aug 2005 01:32:38 +0000 (18:32 -0700)
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>
git-diff-script

index 926f594be41ae856668f82436333f7b7e804a1b6..99ff2640f127e36fd4351557e27e7b8a683a07ce 100755 (executable)
@@ -8,8 +8,14 @@ case "${#rev[*]}" in
 1)
        git-diff-cache -M -p "$@";;
 2)
-       begin=$(echo "${rev[1]}" | tr -d '^')
-       end="${rev[0]}"
+       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"