* bug#74614: Problem of finding the project root when working on submodules of a submodule
@ 2024-11-30 2:35 Chu Maeda
2024-12-02 2:14 ` Dmitry Gutov
0 siblings, 1 reply; 6+ messages in thread
From: Chu Maeda @ 2024-11-30 2:35 UTC (permalink / raw)
To: 74614
[-- Attachment #1: Type: text/plain, Size: 362 bytes --]
Assume that there's a git repository A. A has a submodule B. B has a
submodule C.
When I'm working on C, the current implementation won't choose A as the
project root even though the project-vc-merge-submodules is non-nil.
I can customize project-find-functions to find the right project root as a
workaround, but I think this might be a bug need to be fixed.
[-- Attachment #2: Type: text/html, Size: 444 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#74614: Problem of finding the project root when working on submodules of a submodule
2024-11-30 2:35 bug#74614: Problem of finding the project root when working on submodules of a submodule Chu Maeda
@ 2024-12-02 2:14 ` Dmitry Gutov
[not found] ` <CAEhDdq9pdB9HP9M61_Hs7Dh0ea3=oLBjwxwDnh1KGHHO=z1WcQ@mail.gmail.com>
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Gutov @ 2024-12-02 2:14 UTC (permalink / raw)
To: Chu Maeda, 74614
Hi!
On 30/11/2024 04:35, Chu Maeda wrote:
> Assume that there's a git repository A. A has a submodule B. B has a
> submodule C.
>
> When I'm working on C, the current implementation won't choose A as the
> project root even though the project-vc-merge-submodules is non-nil.
>
> I can customize project-find-functions to find the right project root as
> a workaround, but I think this might be a bug need to be fixed.
Could you post a sequence of commands one can/should use to recreate
such a project?
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#74614: Fwd: bug#74614: Problem of finding the project root when working on submodules of a submodule
[not found] ` <CAEhDdq9pdB9HP9M61_Hs7Dh0ea3=oLBjwxwDnh1KGHHO=z1WcQ@mail.gmail.com>
@ 2024-12-02 5:15 ` Chu Maeda
2024-12-03 2:14 ` Dmitry Gutov
0 siblings, 1 reply; 6+ messages in thread
From: Chu Maeda @ 2024-12-02 5:15 UTC (permalink / raw)
To: 74614
[-- Attachment #1: Type: text/plain, Size: 534 bytes --]
---------- Forwarded message ---------
发件人: Chu Maeda <maedaqu@gmail.com>
Date: 2024年12月2日周一 13:13
Subject: Re: bug#74614: Problem of finding the project root when working on
submodules of a submodule
To: Dmitry Gutov <dmitry@gutov.dev>
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
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)
[-- Attachment #2: Type: text/html, Size: 970 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#74614: Fwd: bug#74614: Problem of finding the project root when working on submodules of a submodule
2024-12-02 5:15 ` bug#74614: Fwd: " Chu Maeda
@ 2024-12-03 2:14 ` Dmitry Gutov
2024-12-03 2:25 ` Chu Maeda
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Gutov @ 2024-12-03 2:14 UTC (permalink / raw)
To: Chu Maeda, 74614
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.
^ permalink raw reply related [flat|nested] 6+ messages in thread
* bug#74614: Fwd: bug#74614: Problem of finding the project root when working on submodules of a submodule
2024-12-03 2:14 ` Dmitry Gutov
@ 2024-12-03 2:25 ` Chu Maeda
2024-12-03 2:39 ` Dmitry Gutov
0 siblings, 1 reply; 6+ messages in thread
From: Chu Maeda @ 2024-12-03 2:25 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 74614
[-- Attachment #1: Type: text/plain, Size: 1252 bytes --]
It works. Thanks.
Dmitry Gutov <dmitry@gutov.dev> 于2024年12月3日周二 10:15写道:
> 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.
>
[-- Attachment #2: Type: text/html, Size: 1875 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#74614: Fwd: bug#74614: Problem of finding the project root when working on submodules of a submodule
2024-12-03 2:25 ` Chu Maeda
@ 2024-12-03 2:39 ` Dmitry Gutov
0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Gutov @ 2024-12-03 2:39 UTC (permalink / raw)
To: Chu Maeda; +Cc: 74614-done
Version: 31.1
On 03/12/2024 04:25, Chu Maeda wrote:
> It works. Thanks.
Thanks for testing, pushed to master now in 8534bb2d6b5.
> Dmitry Gutov <dmitry@gutov.dev <mailto:dmitry@gutov.dev>> 于2024年12月3
> 日周二 10:15写道:
>
> 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>
> > <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.
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-12-03 2:39 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-30 2:35 bug#74614: Problem of finding the project root when working on submodules of a submodule Chu Maeda
2024-12-02 2:14 ` Dmitry Gutov
[not found] ` <CAEhDdq9pdB9HP9M61_Hs7Dh0ea3=oLBjwxwDnh1KGHHO=z1WcQ@mail.gmail.com>
2024-12-02 5:15 ` bug#74614: Fwd: " Chu Maeda
2024-12-03 2:14 ` Dmitry Gutov
2024-12-03 2:25 ` Chu Maeda
2024-12-03 2:39 ` Dmitry Gutov
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.