summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-09-23 07:53:02 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-09-23 07:53:02 (GMT)
commit9f92f15f897fa1a943bcec324032cc4ca1f73ecf (patch)
tree915e6390149983a80bcd574f6ccd516e0ea3288a
parent2c08b3638339f9b73128c41a4882e115222608a3 (diff)
downloadgit-9f92f15f897fa1a943bcec324032cc4ca1f73ecf.zip
git-9f92f15f897fa1a943bcec324032cc4ca1f73ecf.tar.gz
git-9f92f15f897fa1a943bcec324032cc4ca1f73ecf.tar.bz2
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-xgit-diff.sh14
1 files changed, 13 insertions, 1 deletions
diff --git a/git-diff.sh b/git-diff.sh
index 9732c8a..84a152a 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]*\).*') &&