From 9f92f15f897fa1a943bcec324032cc4ca1f73ecf Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 23 Sep 2005 00:53:02 -0700 Subject: [PATCH] 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 --- git-diff.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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]*\).*') && -- 2.26.2