Perhaps we should also check that there are no existing staged changes for
those files, and if so, abort? This way we won't commit anything else by
accident.
Will do later.
Shouldn't be too hard, if we don't try to do it eagerly. Just add a check
inside (when vc-git-patch-string ...) in vc-git-checkin.
This uses the same command `git diff --cached --quiet` as in commit-patch
that you mentioned earlier
https://github.com/caldwell/commit-patch/blob/master/commit-patch#L215-L217
(but with an error message shorter than "Cowardly refusing to do anything
potentially harmful":)
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 8458b40714..fa09ecf472 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -944,6 +944,8 @@ vc-git-checkin
(let ((default-directory (file-name-directory file1)))
(make-nearby-temp-file "git-msg")))))
(when vc-git-patch-string
+ (unless (eq (vc-git-command nil t nil "diff" "--cached" "--quiet") 0)
+ (error "Index not empty"))