threads / rfc / 64943

RFC v3, 2 partsMake read_attr() repository-aware by introducing a lazy bare state

Subject: [RFC GSoC PATCH v3 0/2] Make read_attr() repository-aware by introducing a lazy bare state

## tl;dr

4 messages between Feb 8, 2026 and Feb 19, 2026. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Ayush Jha· Feb 8, 2026, 06:29 UTC · lore

This patch series is v3 of an earlier RFC that aimed to remove the dependency on the global `the_repository` from read_attr().

Based on feedback from Lucas Seiki Oshiro and Junio C Hamano, this iteration introduces a repository-scoped, lazily initialized "bare" state in struct repo_settings, exposed via repo_settings_get_is_bare(). The read_attr() function is then updated to use this helper instead of is_bare_repository().

The series is split as follows:
  1/2 repo-settings: add repo_settings_get_is_bare
  2/2 attr: use local repository state in read_attr
Comments and suggestions are welcome.
Ayush Jha (2):
  repo-settings: add repo_settings_get_is_bare
  attr: use local repository state in read_attr
 attr.c          |  3 ++-
 repo-settings.c | 12 ++++++++++++
 repo-settings.h |  5 +++++
 3 files changed, 19 insertions(+), 1 deletion(-)
-- 
2.53.0.windows.1
Ayush Jha· Feb 19, 2026, 09:42 UTC · re: Ayush Jha · lore

Re: [RFC GSoC PATCH v3 0/2] Make read_attr() repository-aware by introducing a lazy bare state

Hi all,

I wanted to gently follow up on this RFC series in case it may have been missed in the thread. I would really appreciate any feedback whenever you have time.

If there are concerns, suggestions, or areas that need clarification, I’d be happy to revise the series accordingly.

Thank you for your time and review.

Best regards, Ayush

On Sun, Feb 8, 2026 at 12:00 PM Ayush Jha <kumarayushjha123@gmail.com> wrote:
Show 28 quoted lines
>
> This patch series is v3 of an earlier RFC that aimed to remove the
> dependency on the global `the_repository` from read_attr().
>
> Based on feedback from Lucas Seiki Oshiro and Junio C Hamano, this
> iteration introduces a repository-scoped, lazily initialized "bare"
> state in struct repo_settings, exposed via repo_settings_get_is_bare().
> The read_attr() function is then updated to use this helper instead of
> is_bare_repository().
>
> The series is split as follows:
>   1/2 repo-settings: add repo_settings_get_is_bare
>   2/2 attr: use local repository state in read_attr
>
> Comments and suggestions are welcome.
>
> Ayush Jha (2):
>   repo-settings: add repo_settings_get_is_bare
>   attr: use local repository state in read_attr
>
>  attr.c          |  3 ++-
>  repo-settings.c | 12 ++++++++++++
>  repo-settings.h |  5 +++++
>  3 files changed, 19 insertions(+), 1 deletion(-)
>
> --
> 2.53.0.windows.1
>
Phillip Wood· Feb 19, 2026, 10:42 UTC · re: Ayush Jha · lore

Re: [RFC GSoC PATCH v3 0/2] Make read_attr() repository-aware by introducing a lazy bare state

Hi Ayush
On 08/02/2026 06:29, Ayush Jha wrote:
Show 8 quoted lines
> This patch series is v3 of an earlier RFC that aimed to remove the
> dependency on the global `the_repository` from read_attr().
> 
> Based on feedback from Lucas Seiki Oshiro and Junio C Hamano, this
> iteration introduces a repository-scoped, lazily initialized "bare"
> state in struct repo_settings, exposed via repo_settings_get_is_bare().
> The read_attr() function is then updated to use this helper instead of
> is_bare_repository().

Doesn't the lazy initialization here suffer from the same problems that Junio explained in https://lore.kernel.org/xmqqpl63b2tm.fsf@gitster.g ? Changing config settings that are currently parsed eagerly to being parsed lazily opens up a whole can of worms and is best avoided. As Junio said Bello Olamide is exploring a different approach that avoids the lazy parsing.

Thanks
Phillip
Show 15 quoted lines
> The series is split as follows:
>    1/2 repo-settings: add repo_settings_get_is_bare
>    2/2 attr: use local repository state in read_attr
> 
> Comments and suggestions are welcome.
> 
> Ayush Jha (2):
>    repo-settings: add repo_settings_get_is_bare
>    attr: use local repository state in read_attr
> 
>   attr.c          |  3 ++-
>   repo-settings.c | 12 ++++++++++++
>   repo-settings.h |  5 +++++
>   3 files changed, 19 insertions(+), 1 deletion(-)
> 
Ayush Jha· Feb 19, 2026, 15:01 UTC · re: Phillip Wood · lore

Re: [RFC GSoC PATCH v3 0/2] Make read_attr() repository-aware by introducing a lazy bare state

Hi Phillip,

After revisiting this earlier patch in light of the recent discussion, and based on my current understanding, I agree that this change falls under the same lazy-parsing concerns that Junio previously highlighted.

Thank you for pointing that out.

Best regards, Ayush

On Thu, Feb 19, 2026 at 4:12 PM Phillip Wood <phillip.wood123@gmail.com> wrote:
Show 40 quoted lines
>
> Hi Ayush
>
> On 08/02/2026 06:29, Ayush Jha wrote:
> > This patch series is v3 of an earlier RFC that aimed to remove the
> > dependency on the global `the_repository` from read_attr().
> >
> > Based on feedback from Lucas Seiki Oshiro and Junio C Hamano, this
> > iteration introduces a repository-scoped, lazily initialized "bare"
> > state in struct repo_settings, exposed via repo_settings_get_is_bare().
> > The read_attr() function is then updated to use this helper instead of
> > is_bare_repository().
>
> Doesn't the lazy initialization here suffer from the same problems that
> Junio explained in https://lore.kernel.org/xmqqpl63b2tm.fsf@gitster.g ?
> Changing config settings that are currently parsed eagerly to being
> parsed lazily opens up a whole can of worms and is best avoided. As
> Junio said Bello Olamide is exploring a different approach that avoids
> the lazy parsing.
>
> Thanks
>
> Phillip
>
> > The series is split as follows:
> >    1/2 repo-settings: add repo_settings_get_is_bare
> >    2/2 attr: use local repository state in read_attr
> >
> > Comments and suggestions are welcome.
> >
> > Ayush Jha (2):
> >    repo-settings: add repo_settings_get_is_bare
> >    attr: use local repository state in read_attr
> >
> >   attr.c          |  3 ++-
> >   repo-settings.c | 12 ++++++++++++
> >   repo-settings.h |  5 +++++
> >   3 files changed, 19 insertions(+), 1 deletion(-)
> >
>

← back to recent threads