case "$0" in
*status)
status_only=t
- unmerged_ok_if_status=--unmerged ;;
+ ;;
*commit)
status_only=
- unmerged_ok_if_status= ;;
+ ;;
esac
refuse_partial () {
case "$all,$also" in
t,)
+ if test ! -f "$THIS_INDEX"
+ then
+ die 'nothing to commit (use "git add file1 file2" to include for commit)'
+ fi
save_index &&
(
cd_to_toplevel &&
USE_INDEX="$THIS_INDEX"
fi
-GIT_INDEX_FILE="$USE_INDEX" \
- git-update-index -q $unmerged_ok_if_status --refresh || exit
-
-################################################################
-# If the request is status, just show it and exit.
-
-case "$0" in
-*status)
+case "$status_only" in
+t)
+ # This will silently fail in a read-only repository, which is
+ # what we want.
+ GIT_INDEX_FILE="$USE_INDEX" git-update-index -q --unmerged --refresh
run_status
exit $?
+ ;;
+'')
+ GIT_INDEX_FILE="$USE_INDEX" git-update-index -q --refresh || exit
+ ;;
esac
################################################################
fi
ret="$?"
rm -f "$GIT_DIR/COMMIT_MSG" "$GIT_DIR/COMMIT_EDITMSG" "$GIT_DIR/SQUASH_MSG"
+
+cd_to_toplevel
+
if test -d "$GIT_DIR/rr-cache"
then
git-rerere