summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2020-05-15 17:30:47 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2020-05-15 17:30:47 -0400
commitdba8f3783b209fef5be2589528ed43a99a8bab6a (patch)
tree0394433093cabb4ab07488e61641b4dac28120be
parent4307a84fd8cb57934f45ee4450c91c08bb86b4a3 (diff)
downloademacs-dba8f3783b209fef5be2589528ed43a99a8bab6a.tar.gz
emacs-dba8f3783b209fef5be2589528ed43a99a8bab6a.tar.bz2
emacs-dba8f3783b209fef5be2589528ed43a99a8bab6a.zip
* lisp/progmodes/project.el (project-try-vc): Fix regexp typo.
-rw-r--r--lisp/progmodes/project.el11
1 files changed, 10 insertions, 1 deletions
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 0ce2786a4dd..2092d692b50 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -273,6 +273,13 @@ backend implementation of `project-external-roots'.")
(pcase backend
('Git
;; Don't stop at submodule boundary.
+ ;; Note: It's not necessarily clear-cut what should be
+ ;; considered a "submodule" in the sense that some users
+ ;; may setup things equivalent to "git-submodule"s using
+ ;; "git worktree" instead (for example).
+ ;; FIXME: Also it may be the case that some users would consider
+ ;; a submodule as its own project. So there's a good chance
+ ;; we will need to let the user tell us what is their intention.
(or (vc-file-getprop dir 'project-git-root)
(let* ((root (vc-call-backend backend 'root dir))
(gitfile (expand-file-name ".git" root)))
@@ -284,7 +291,9 @@ backend implementation of `project-external-roots'.")
((with-temp-buffer
(insert-file-contents gitfile)
(goto-char (point-min))
- (looking-at "gitdir: [./]+/\.git/modules/"))
+ ;; Kind of a hack to distinguish a submodule from
+ ;; other cases of .git files pointing elsewhere.
+ (looking-at "gitdir: [./]+/\\.git/modules/"))
(let* ((parent (file-name-directory
(directory-file-name root))))
(vc-call-backend backend 'root parent)))