summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Linus Torvalds <torvalds@ppc970.osdl.org>2005-06-17 15:34:19 -0700
committerLibravatar Linus Torvalds <torvalds@ppc970.osdl.org>2005-06-17 15:34:19 -0700
commit753fd78458b6d7d0e65ce0ebe7b62e1bc55f3992 (patch)
treec22774049b7252d1a09a9b0ad22ede484b89e84f
parentgit-apply: use default name for mode change patches (diff)
downloadtgif-753fd78458b6d7d0e65ce0ebe7b62e1bc55f3992.tar.xz
Use "-M" instead of "-C" for "git diff" and "git status"
The "C" in "-C" may stand for "Cool", but it's also pretty slow, since right now it leaves all unmodified files to be tested even if there are no new files at all. That just ends up being unacceptably slow for big projects, especially if it's not all in the cache.
-rwxr-xr-xgit-diff-script6
-rwxr-xr-xgit-status-script2
2 files changed, 4 insertions, 4 deletions
diff --git a/git-diff-script b/git-diff-script
index d70e8b9f29..673853b9ce 100755
--- a/git-diff-script
+++ b/git-diff-script
@@ -3,13 +3,13 @@ rev=($(git-rev-parse --revs-only "$@"))
flags=($(git-rev-parse --no-revs "$@"))
case "${#rev[*]}" in
0)
- git-diff-files -p "$@";;
+ git-diff-files -M -p "$@";;
1)
- git-diff-cache -p "$@";;
+ git-diff-cache -M -p "$@";;
2)
begin=$(echo "${rev[1]}" | tr -d '^')
end="${rev[0]}"
- git-diff-tree -p $flags $begin $end;;
+ git-diff-tree -M -p $flags $begin $end;;
*)
echo "I don't understand"
exit 1;;
diff --git a/git-status-script b/git-status-script
index f91bb55894..7d47fdea79 100755
--- a/git-status-script
+++ b/git-status-script
@@ -27,7 +27,7 @@ report () {
}
git-update-cache --refresh >& /dev/null
-git-diff-cache -B -C --cached HEAD | sed 's/^://' | report "Updated but not checked in" "will commit"
+git-diff-cache -M --cached HEAD | sed 's/^://' | report "Updated but not checked in" "will commit"
committable="$?"
git-diff-files | sed 's/^://' | report "Changed but not updated" "use git-update-cache to mark for commit"
if [ "$committable" == "0" ]