mirror of
https://github.com/git/git.git
synced 2024-11-06 09:13:01 +01:00
753fd78458
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.
38 lines
868 B
Bash
Executable file
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
|