From: Dmitry Gutov Date: Thu, 22 Jul 2021 12:41:52 +0000 (+0200) Subject: Bind the GIT_LITERAL_PATHSPECS environment variable X-Git-Tag: emacs-28.0.90~1754 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a2d0ff26005c5c10ffe0d84bd8b458a06828be82;p=emacs.git Bind the GIT_LITERAL_PATHSPECS environment variable * lisp/vc/vc-git.el (vc-git-command): (vc-git--call): Ensure that git interprets file names literally (bug#39452). --- diff --git a/etc/NEWS b/etc/NEWS index b1db3b7c331..bf19c34f021 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -886,6 +886,12 @@ keys, add the following to your init file: ** Change Logs and VC +*** vc-git now sets the GIT_LITERAL_PATHSPECS environment variable. +This ensures that Git operations on files containing wildcard +characters work as they're supposed to. However, this also affects +scripts running from Git hooks, and these have to "unset +GIT_LITERAL_PATHSPECS" to work as before. + *** More VC commands can be used from non-file buffers. The relevant commands are those that don't change the VC state. The non-file buffers which can use VC commands are those that have diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 5828a83debc..143087122fd 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1772,6 +1772,7 @@ The difference to vc-do-command is that this function always invokes (process-environment (append `("GIT_DIR" + "GIT_LITERAL_PATHSPECS=1" ;; Avoid repository locking during background operations ;; (bug#21559). ,@(when revert-buffer-in-progress-p @@ -1806,6 +1807,7 @@ The difference to vc-do-command is that this function always invokes (process-environment (append `("GIT_DIR" + "GIT_LITERAL_PATHSPECS=1" ;; Avoid repository locking during background operations ;; (bug#21559). ,@(when revert-buffer-in-progress-p