GNU bug report logs - #74614
Problem of finding the project root when working on submodules of a submodule

Previous Next

Package: emacs;

Reported by: Chu Maeda <maedaqu <at> gmail.com>

Date: Sat, 30 Nov 2024 02:36:01 UTC

Severity: normal

Fixed in version 31.1

Done: Dmitry Gutov <dmitry <at> gutov.dev>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dmitry <at> gutov.dev>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#74614: closed (Problem of finding the project root when
 working on submodules of a submodule)
Date: Tue, 03 Dec 2024 02:40:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 3 Dec 2024 04:39:35 +0200
with message-id <388a95d0-4d2f-44b5-acbc-328df94f9c1a <at> gutov.dev>
and subject line Re: bug#74614: Fwd: bug#74614: Problem of finding the project root when working on submodules of a submodule
has caused the debbugs.gnu.org bug report #74614,
regarding Problem of finding the project root when working on submodules of a submodule
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
74614: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74614
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Chu Maeda <maedaqu <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Problem of finding the project root when working on submodules of a
 submodule
Date: Sat, 30 Nov 2024 10:35:19 +0800
[Message part 3 (text/plain, inline)]
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.
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Dmitry Gutov <dmitry <at> gutov.dev>
To: Chu Maeda <maedaqu <at> gmail.com>
Cc: 74614-done <at> debbugs.gnu.org
Subject: Re: bug#74614: Fwd: bug#74614: Problem of finding the project root
 when working on submodules of a submodule
Date: Tue, 3 Dec 2024 04:39:35 +0200
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 <at> gutov.dev <mailto:dmitry <at> 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.
> 



This bug report was last modified 174 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.