summaryrefslogtreecommitdiff
path: root/git-status-script
blob: 7d47fdea79aafaab1d6357d8ce478e2fb40b45b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/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