diff options
author | Junio C Hamano <junkio@cox.net> | 2005-09-23 00:53:02 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-09-23 00:53:02 -0700 |
commit | 9f92f15f897fa1a943bcec324032cc4ca1f73ecf (patch) | |
tree | 915e6390149983a80bcd574f6ccd516e0ea3288a | |
parent | 2c08b3638339f9b73128c41a4882e115222608a3 (diff) | |
download | git-9f92f15f897fa1a943bcec324032cc4ca1f73ecf.tar.gz git-9f92f15f897fa1a943bcec324032cc4ca1f73ecf.tar.xz |
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 <junkio@cox.net>
-rwxr-xr-x | git-diff.sh | 14 |
1 files changed, 13 insertions, 1 deletions
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]*\).*') && |