| #!/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 |