From what I see it's not just a warning: $ emacs --batch --eval "(let ((debug-on-error t)) (setf vc-git-program \"git-is-not-installed\") (find-file-noselect \"whatever\"))" Debugger entered--Lisp error: (file-missing "Searching for program" "No such file or directory" "git-is-not-installed") call-process("git-is-not-installed" nil (t nil) nil "--no-pager" "ls-files" "-c" "-z" "--" "whatever") process-file("git-is-not-installed" nil (t nil) nil "--no-pager" "ls-files" "-c" "-z" "--" "whatever") vc-git--call((t nil) "ls-files" "-c" "-z" "--" "whatever") vc-git--out-ok("ls-files" "-c" "-z" "--" "whatever") vc-git-registered("/home/paul/eldev/whatever") vc-git-registered("/home/paul/eldev/whatever") vc-call-backend(Git registered "/home/paul/eldev/whatever") #f(compiled-function (b) #)(Git) mapc(#f(compiled-function (b) #) (RCS CVS SVN SCCS SRC Bzr Git Hg)) vc-registered("/home/paul/eldev/whatever") vc-backend("/home/paul/eldev/whatever") vc-refresh-state() run-hooks(find-file-hook) after-find-file(t t) find-file-noselect-1(# "~/eldev/whatever" nil nil "~/eldev/whatever" nil) find-file-noselect("whatever") (let ((debug-on-error t)) (setf vc-git-program "git-is-not-installed") (find-file-noselect "whatever")) command-line-1(("--eval" "(let ((debug-on-error t)) (setf vc-git-program \"gi...")) command-line() normal-top-level() Paul On Tue, 5 Sept 2023 at 21:44, Eli Zaretskii wrote: > > From: Paul Pogonyshev > > Date: Tue, 5 Sep 2023 20:54:54 +0200 > > > > To reproduce: > > > > 1. Change current directory to a Git checkout (e.g. `~/git/emacs' or > something). > > 2. From the command line: > > > > $ emacs --batch --eval "(progn (setf vc-git-program > \"git-is-not-installed\") (find-file-noselect > > \"whatever\"))" > > Error: (file-missing "Searching for program" "No such file or > directory" "git-is-not-installed") > > > > Expected: Emacs is able to open the file, Git must not be essential. > > Emacs does open the file; what you see is not an error, it's a > message. The code which tries to invoke Git runs with-demoted-errors, > so any error is converted to a simple message. If you try this > variant of your command: > > $ emacs --batch --eval "(progn (setf vc-git-program > \"git-is-not-installed\") (message \"%s\" (find-file-noselect \"README\")))" > > you will see: > > Error: (file-missing "Searching for program" "No such file or directory" > "git-is-not-installed") > README > > That "README" at the end means that find-file-noselect did read the > file into its buffer, and the error message is just a message. > > So if this somehow prevented you from doing something, please tell > more, or maybe the recipe needs more steps? >