From: Emily Shaffer <emilyshaffer@google.com>
To: Jonathan Tan <jonathantanmy@google.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v2 2/4] introduce submodule.superprojectGitDir cache
Date: Thu, 19 Aug 2021 10:53:04 -0700 [thread overview]
Message-ID: <YR6agG3pwNJpCakh@google.com> (raw)
In-Reply-To: <20210727174650.2462099-1-jonathantanmy@google.com>
On Tue, Jul 27, 2021 at 10:46:50AM -0700, Jonathan Tan wrote:
>
> > Teach submodules a reference to their superproject's gitdir. This allows
> > us to A) know that we're running from a submodule, and B) have a
> > shortcut to the superproject's vitals, for example, configs.
>
> The first sentence is probably better "Introduce a new config variable
> storing a submodule's reference to its superproject's gitdir, and teach
> 'git submodule add' to write it".
>
> Also, I think there should be more detail about the planned use both
> here in the commit message and in the config documentation. Is the plan
> just to use it for best-effort explanatory messages? (Using it as a true
> cache is probably too performance-intensive, I would think, since in its
> absence, we have no idea whether the repo is a submodule and would
> always have to search to the root of the filesystem.) If it is just for
> best-effort explanatory messages, maybe write:
>
> If present, commands like "git status" in this submodule may print
> additional information about this submodule's status with respect to
> its superproject.
>
> This would further reinforce that this variable being missing is OK.
Ok, I'll expand the commit message. The first use case for this extra
pointer is for a shared config between superproject and submodule, which
I've sent a series for already; I'll mention that in the commit message
too.
>
> > diff --git a/Documentation/config/submodule.txt b/Documentation/config/submodule.txt
> > index d7a63c8c12..7c459cc19e 100644
> > --- a/Documentation/config/submodule.txt
> > +++ b/Documentation/config/submodule.txt
> > @@ -90,3 +90,15 @@ submodule.alternateErrorStrategy::
> > `ignore`, `info`, `die`. Default is `die`. Note that if set to `ignore`
> > or `info`, and if there is an error with the computed alternate, the
> > clone proceeds as if no alternate was specified.
> > +
> > +submodule.superprojectGitDir::
> > + The relative path from the submodule's worktree to the superproject's
> > + gitdir. This config should only be present in projects which are
> > + submodules, but is not guaranteed to be present in every submodule. It
> > + is set automatically during submodule creation.
> > ++
> > + In situations where more than one superproject references the same
> > + submodule worktree, the value of this config and the behavior of
> > + operations which use it are undefined. To reference a single project
> > + from multiple superprojects, it is better to create a worktree of the
> > + submodule for each superproject.
>
> So my suggestion would be:
>
> The relative path from this repository's worktree to its
> superproject's gitdir. When Git is run in a repository, it usually
> makes no difference whether this repository is standalone or a
> submodule, but if this configuration variable is present, commands
> like "git status" in this submodule may print additional information
> about this submodule's status with respect to its superproject.
>
> (I believe Junio has commented on the second paragraph - I don't have
> additional comments on that.)
The spirit of this suggestion seems to be "describe a possible side
effect of this config", so I'll do that, although the wording may not be
exactly the same. Thanks.
- Emily
next prev parent reply other threads:[~2021-08-19 17:53 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-11 22:54 [RFC PATCH 0/4] cache parent project's gitdir in submodules Emily Shaffer
2021-06-11 22:54 ` [RFC PATCH 1/4] t7400-submodule-basic: modernize inspect() helper Emily Shaffer
2021-06-14 4:52 ` Junio C Hamano
2021-06-11 22:54 ` [RFC PATCH 2/4] introduce submodule.superprojectGitDir cache Emily Shaffer
2021-06-14 5:09 ` Junio C Hamano
2021-06-15 22:00 ` Emily Shaffer
2021-06-11 22:54 ` [RFC PATCH 3/4] submodule: cache superproject gitdir during absorbgitdirs Emily Shaffer
2021-06-14 6:18 ` Junio C Hamano
2021-06-11 22:54 ` [RFC PATCH 4/4] submodule: cache superproject gitdir during 'update' Emily Shaffer
2021-06-14 6:22 ` Junio C Hamano
2021-06-15 21:27 ` Emily Shaffer
2021-06-12 20:12 ` [RFC PATCH 0/4] cache parent project's gitdir in submodules Jacob Keller
2021-06-14 7:26 ` Junio C Hamano
2021-06-15 21:18 ` Emily Shaffer
2021-06-16 0:45 ` [PATCH v2 " Emily Shaffer
2021-06-16 0:45 ` [PATCH v2 1/4] t7400-submodule-basic: modernize inspect() helper Emily Shaffer
2021-07-27 17:12 ` Jonathan Tan
2021-08-19 17:46 ` Emily Shaffer
2021-06-16 0:45 ` [PATCH v2 2/4] introduce submodule.superprojectGitDir cache Emily Shaffer
2021-06-16 4:40 ` Junio C Hamano
2021-06-16 4:43 ` Junio C Hamano
2021-06-18 0:03 ` Emily Shaffer
2021-06-18 0:00 ` Emily Shaffer
2021-07-27 17:46 ` Jonathan Tan
2021-08-19 17:53 ` Emily Shaffer [this message]
2021-10-14 19:25 ` Ævar Arnfjörð Bjarmason
2021-06-16 0:45 ` [PATCH v2 3/4] submodule: cache superproject gitdir during absorbgitdirs Emily Shaffer
2021-06-16 0:45 ` [PATCH v2 4/4] submodule: cache superproject gitdir during 'update' Emily Shaffer
2021-07-27 17:51 ` Jonathan Tan
2021-08-19 18:02 ` Emily Shaffer
2021-08-19 20:09 ` [PATCH v3 0/4] cache parent project's gitdir in submodules Emily Shaffer
2021-08-19 20:09 ` [PATCH v3 1/4] t7400-submodule-basic: modernize inspect() helper Emily Shaffer
2021-08-19 20:09 ` [PATCH v3 2/4] introduce submodule.superprojectGitDir record Emily Shaffer
2021-08-20 0:38 ` Derrick Stolee
2021-10-13 19:36 ` Emily Shaffer
2021-09-04 17:20 ` Matheus Tavares
2021-10-13 19:39 ` Emily Shaffer
2021-08-19 20:09 ` [PATCH v3 3/4] submodule: record superproject gitdir during absorbgitdirs Emily Shaffer
2021-08-20 0:50 ` Derrick Stolee
2021-10-13 19:42 ` Emily Shaffer
2021-09-04 17:27 ` Matheus Tavares
2021-10-14 18:40 ` Emily Shaffer
2021-08-19 20:09 ` [PATCH v3 4/4] submodule: record superproject gitdir during 'update' Emily Shaffer
2021-08-20 0:59 ` Derrick Stolee
2021-10-14 18:45 ` Emily Shaffer
2021-08-19 21:56 ` [PATCH v3 0/4] cache parent project's gitdir in submodules Junio C Hamano
2021-08-20 1:09 ` Derrick Stolee
2021-10-13 18:51 ` Emily Shaffer
2021-10-14 17:12 ` Derrick Stolee
2021-10-14 18:52 ` Emily Shaffer
2021-09-04 17:50 ` Matheus Tavares Bernardino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YR6agG3pwNJpCakh@google.com \
--to=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=jonathantanmy@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).