1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-30 05:47:53 +01:00
git/git-status-script
Linus Torvalds 753fd78458 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.
2005-06-17 15:34:19 -07:00

38 lines
868 B
Bash
Executable file

#!/bin/sh
report () {
header="#
# $1:
# ($2)
#
"
trailer=""
while read oldmode mode oldsha sha status name newname
do
echo -n "$header"
header=""
trailer="#
"
case "$status" in
M ) echo "# modified: $name";;
D*) echo "# deleted: $name";;
T ) echo "# typechange: $name";;
C*) echo "# copied: $name -> $newname";;
R*) echo "# renamed: $name -> $newname";;
N*) echo "# new file: $name";;
U ) echo "# unmerged: $name";;
esac
done
echo -n "$trailer"
[ "$header" ]
}
git-update-cache --refresh >& /dev/null
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" ]
then
echo "nothing to commit"
exit 1
fi
exit 0