Add "commit" helper script
[git.git] / git-status-script
diff --git a/git-status-script b/git-status-script
new file mode 100755 (executable)
index 0000000..72a93f7
--- /dev/null
@@ -0,0 +1,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 -B -C --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