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.
This commit is contained in:
parent
b7e8039a6f
commit
753fd78458
@ -3,13 +3,13 @@ rev=($(git-rev-parse --revs-only "$@"))
|
|||||||
flags=($(git-rev-parse --no-revs "$@"))
|
flags=($(git-rev-parse --no-revs "$@"))
|
||||||
case "${#rev[*]}" in
|
case "${#rev[*]}" in
|
||||||
0)
|
0)
|
||||||
git-diff-files -p "$@";;
|
git-diff-files -M -p "$@";;
|
||||||
1)
|
1)
|
||||||
git-diff-cache -p "$@";;
|
git-diff-cache -M -p "$@";;
|
||||||
2)
|
2)
|
||||||
begin=$(echo "${rev[1]}" | tr -d '^')
|
begin=$(echo "${rev[1]}" | tr -d '^')
|
||||||
end="${rev[0]}"
|
end="${rev[0]}"
|
||||||
git-diff-tree -p $flags $begin $end;;
|
git-diff-tree -M -p $flags $begin $end;;
|
||||||
*)
|
*)
|
||||||
echo "I don't understand"
|
echo "I don't understand"
|
||||||
exit 1;;
|
exit 1;;
|
||||||
|
@ -27,7 +27,7 @@ report () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
git-update-cache --refresh >& /dev/null
|
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="$?"
|
committable="$?"
|
||||||
git-diff-files | sed 's/^://' | report "Changed but not updated" "use git-update-cache to mark for commit"
|
git-diff-files | sed 's/^://' | report "Changed but not updated" "use git-update-cache to mark for commit"
|
||||||
if [ "$committable" == "0" ]
|
if [ "$committable" == "0" ]
|
||||||
|
Loading…
Reference in New Issue
Block a user