Can I perhaps add a hook via local variables in the file header?
Here is what I use to auto-commit files in 2 directories (for my notes):
(defun egh:maybe-git-auto-commit-mode () (let* ((bfn (buffer-file-name)) (root (and bfn (vc-git-root bfn))) (full-root (and root (expand-file-name root)))) (if (or (string-equal full-root "/home/egh/c/notes/h/") (string-equal full-root "/home/egh/c/notes/w/")) (git-auto-commit-mode +1)))) (add-hook 'org-mode-hook #'egh:maybe-git-auto-commit-mode) (setq-default gac-automatically-push-p t)
This will commit org files when the git root is
With this project you can do it easily per-file or per-directory.
If you’re using Emacs 24 or newer you should set an eval file-local variable:
;; -*- eval: (git-auto-commit-mode 1) -*-
If you’re using an older version of Emacs, that should be:
;; -*- mode: git-auto-commit -*-