Subject: Re: bug#74614: Fwd: bug#74614: Problem of finding the project root when working on submodules of a submodule

From: Dmitry Gutov <[email-masked]>
Date: Tue, 3 Dec 2024 04:14:58 +0200

On 02/12/2024 07:15, Chu Maeda wrote:
> 
> Of course, I created such a project on github, you could clone it by 
> command:
> 
> git clone --recurse-submodules https://github.com/chu-mirror/A.git 
> <https://github.com/chu-mirror/A.git>
> 
> The problem is clear when you open the file A/B/C/README.md, and run 
> command project-find-file(C-x p f by default)

Thanks!

It seems we should switch from checking for modules once to doing it in 
a loop. Try this out:

diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index cf1c94a6d20..3cc063a5d99 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -591,7 +591,7 @@ project-try-vc--search
                       last-matches))
             vc-handled-backends))
           project)
-    (when (and
+    (while (and
             (eq backend 'Git)
             (project--vc-merge-submodules-p root)
             (project--submodule-p root))

Note you might need to restart Emacs after applying the patch, because 
the directory->project relation is currently cached until restart.