From 821c0d36dfa2f2cddb9d05a024a8248f2390f478 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Thu, 18 Dec 2025 01:43:03 +0200 Subject: [PATCH] vc-git-project-list-files: Restore support for Git < 2.13 * lisp/progmodes/project.el (vc-git-project-list-files): Restore support for Git < 2.13 (discussed in bug#79809). --- lisp/progmodes/project.el | 49 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index d543f183216..ddc79dc6944 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -722,30 +722,31 @@ See `project-vc-extra-root-markers' for the marker value format.") (and include-untracked '("-o")))) (when extra-ignores (setq args (append args - (cons "--" - (mapcar - (lambda (i) - (format - ":(exclude,glob,top)%s" - (if (string-match "\\*\\*" i) - ;; Looks like pathspec glob - ;; format already. - i - (if (string-match "\\./" i) - ;; ./abc -> abc - (setq i (substring i 2)) - ;; abc -> **/abc - (setq i (concat "**/" i)) - ;; FIXME: '**/abc' should also - ;; match a directory with that - ;; name, but doesn't (git 2.25.1). - ;; Maybe we should replace - ;; such entries with two. - (if (string-match "/\\'" i) - ;; abc/ -> abc/** - (setq i (concat i "**")))) - i))) - extra-ignores))))) + ;; Git <2.13 needs a positive pathspec first. + '("--" ".") + (mapcar + (lambda (i) + (format + ":(exclude,glob,top)%s" + (if (string-match "\\*\\*" i) + ;; Looks like pathspec glob + ;; format already. + i + (if (string-match "\\./" i) + ;; ./abc -> abc + (setq i (substring i 2)) + ;; abc -> **/abc + (setq i (concat "**/" i)) + ;; FIXME: '**/abc' should also + ;; match a directory with that + ;; name, but doesn't (git 2.25.1). + ;; Maybe we should replace + ;; such entries with two. + (if (string-match "/\\'" i) + ;; abc/ -> abc/** + (setq i (concat i "**")))) + i))) + extra-ignores)))) (setq files (delq nil (mapcar