- # see if there are any changes in the local repository.
- if ! git diff-index --quiet HEAD --; then
- # tell git about all the files and get a check-in comment.
- git commit .
- test_or_die "git commit"
+ # take steps to make sure the branch integrity is good and we're up to date against remote repos.
+ do_revctrl_careful_update "$(\pwd)"
+
+ if [ -f ".no-checkin" ]; then
+# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory"
+ $tell_no_checkin
+ else
+ $blatt_report
+
+ # put all changed and new files in the commit. not to everyone's liking.
+ git add --all . | $TO_SPLITTER
+ promote_pipe_return 0
+ exit_on_error "git add all new files"
+
+ # see if there are any changes in the local repository.
+ if ! git diff-index --quiet HEAD --; then
+ # tell git about all the files and get a check-in comment.
+#hmmm: begins to look like, you guessed it, a reusable bit that all commit actions could enjoy.
+ git commit .
+ retval=$?
+ continue_on_error "git commit"
+ if [ $retval -ne 0 ]; then
+ echo -e -n "Commit failed or was aborted:\nShould we continue with other check-ins? [y/N] "
+ local line
+ read line
+ if [[ "${line:0:1}" != "y" ]]; then
+ echo "Stopping check-in process due to missing commit and user request."
+ exit 1
+ fi
+ fi
+ fi
+
+ # we continue on to the push, even if there were no obvious changes this run, because
+ # there could already be committed changes that haven't been pushed yet.
+
+ # upload any changes to the upstream repo so others can see them.
+ git push --tags origin "$(my_branch_name)" 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER
+ promote_pipe_return 0
+ exit_on_error "git push"