summaryrefslogtreecommitdiff
path: root/lisp/progmodes/project.el
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2020-05-16 00:06:39 +0300
committerDmitry Gutov <dgutov@yandex.ru>2020-05-16 00:06:55 +0300
commit4307a84fd8cb57934f45ee4450c91c08bb86b4a3 (patch)
tree9e4c3cdc534c6bbab87a6c168851b795ab3a9001 /lisp/progmodes/project.el
parent66cbe8b946bf83ab19c0d9a7b9fc03e951ffd5b6 (diff)
downloademacs-4307a84fd8cb57934f45ee4450c91c08bb86b4a3.tar.gz
emacs-4307a84fd8cb57934f45ee4450c91c08bb86b4a3.tar.bz2
emacs-4307a84fd8cb57934f45ee4450c91c08bb86b4a3.zip
Fix submodules, second try
* lisp/progmodes/project.el (project-try-vc): Call the backend directly instead of binding default-directory.
Diffstat (limited to 'lisp/progmodes/project.el')
-rw-r--r--lisp/progmodes/project.el8
1 files changed, 3 insertions, 5 deletions
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index faa60d123fb..0ce2786a4dd 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -274,8 +274,7 @@ backend implementation of `project-external-roots'.")
('Git
;; Don't stop at submodule boundary.
(or (vc-file-getprop dir 'project-git-root)
- (let* ((default-directory dir)
- (root (vc-root-dir))
+ (let* ((root (vc-call-backend backend 'root dir))
(gitfile (expand-file-name ".git" root)))
(vc-file-setprop
dir 'project-git-root
@@ -287,9 +286,8 @@ backend implementation of `project-external-roots'.")
(goto-char (point-min))
(looking-at "gitdir: [./]+/\.git/modules/"))
(let* ((parent (file-name-directory
- (directory-file-name root)))
- (default-directory parent))
- (vc-root-dir)))
+ (directory-file-name root))))
+ (vc-call-backend backend 'root parent)))
(t root)))
)))
('nil nil)