1#!/bin/sh
2report () {
3 header="#
4# $1:
5# ($2)
6#
7"
8 trailer=""
9 while read oldmode mode oldsha sha status name newname
10 do
11 echo -n "$header"
12 header=""
13 trailer="#
14"
15 case "$status" in
16 M ) echo "# modified: $name";;
17 D*) echo "# deleted: $name";;
18 T ) echo "# typechange: $name";;
19 C*) echo "# copied: $name -> $newname";;
20 R*) echo "# renamed: $name -> $newname";;
21 A*) echo "# new file: $name";;
22 U ) echo "# unmerged: $name";;
23 esac
24 done
25 echo -n "$trailer"
26 [ "$header" ]
27}
28
29git-update-cache --refresh >& /dev/null
30git-diff-cache -M --cached HEAD | sed 's/^://' | report "Updated but not checked in" "will commit"
31committable="$?"
32git-diff-files | sed 's/^://' | report "Changed but not updated" "use git-update-cache to mark for commit"
33if [ "$committable" == "0" ]
34then
35 echo "nothing to commit"
36 exit 1
37fi
38exit 0