From: Junio C Hamano Date: Fri, 23 Sep 2005 07:53:02 +0000 (-0700) Subject: Make 'git diff --cached' synonymous to 'git diff --cached HEAD'. X-Git-Tag: v0.99.7c~2^2~10 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=9f92f15f897fa1a943bcec324032cc4ca1f73ecf;p=git.git Make 'git diff --cached' synonymous to 'git diff --cached HEAD'. When making changes to different files (i.e. dirty working tree) and committing logically separate changes in groups, often it is necessary to run 'git diff --cached HEAD' to make sure that the changes being committed makes sense. Saying 'git diff --cached' by mistake gives rather uninformative error message from git-diff-files complaining it does not understand --cached flag. Signed-off-by: Junio C Hamano --- diff --git a/git-diff.sh b/git-diff.sh index 9732c8ac3..84a152af2 100755 --- a/git-diff.sh +++ b/git-diff.sh @@ -9,9 +9,21 @@ files=$(git-rev-parse --no-revs --no-flags --sq "$@") : ${flags:="'-M' '-p'"} +# I often say 'git diff --cached -p' and get scolded by git-diff-files, but +# obviously I mean 'git diff --cached -p HEAD' in that case. +case "$rev" in +'') + case " $flags " in + *" '--cached' "*) + rev='HEAD ' + ;; + esac +esac + case "$rev" in ?*' '?*' '?*) - die "I don't understand" + echo >&2 "I don't understand" + exit 1 ;; ?*' '^?*) begin=$(expr "$rev" : '.*^.\([0-9a-f]*\).*') &&