Merge with master.
[git.git] / git-status-script
1 #!/bin/sh
2 report () {
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
29 git-update-cache --refresh >& /dev/null
30 git-diff-cache -M --cached HEAD | sed 's/^://' | report "Updated but not checked in" "will commit"
31 committable="$?"
32 git-diff-files | sed 's/^://' | report "Changed but not updated" "use git-update-cache to mark for commit"
33 if [ "$committable" == "0" ]
34 then
35         echo "nothing to commit"
36         exit 1
37 fi
38 exit 0