summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-17 22:34:19 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-17 22:34:19 (GMT)
commit753fd78458b6d7d0e65ce0ebe7b62e1bc55f3992 (patch)
treec22774049b7252d1a09a9b0ad22ede484b89e84f
parentb7e8039a6f4a250bc0b9c9ca2d75b60368058413 (diff)
downloadgit-753fd78458b6d7d0e65ce0ebe7b62e1bc55f3992.zip
git-753fd78458b6d7d0e65ce0ebe7b62e1bc55f3992.tar.gz
git-753fd78458b6d7d0e65ce0ebe7b62e1bc55f3992.tar.bz2
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 d70e8b9..673853b 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 f91bb55..7d47fde 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" ]