Re: [RFC PATCH 2/4] introduce submodule.superprojectGitDir cache
- From
Emily Shaffer <emilyshaffer@google.com>
- Date
- Jun 15, 2021, 22:00 UTC
- Message-ID
- <YMkjF+TN05lM4IJV@google.com>
- In-Reply-To
- <xmqqzgvtxcas.fsf@gitster.g>
On Mon, Jun 14, 2021 at 02:09:15PM +0900, Junio C Hamano wrote:
Show 22 quoted lines
> > Emily Shaffer <emilyshaffer@google.com> writes: > > > 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. > > > > By using a relative path instead of an absolute path, we can move the > > superproject directory around on the filesystem without breaking the > > submodule's cache. > > As the function this new thing is added assumes the modern layout of > having submodule "repository" in .git/modules/* of the repository of > the superproject, it is rather easy to move the whole thing together, > so recording it as relative path is all the more important. > > Can a submodule repository be bound to two or more superproject at > the same time? "We assume no, and we will forbid such a layout, and > that is why we can afford to make submodules aware of their > superprojects" is a totally acceptable answer, but it would make it > easier to follow the reasoning behind a design change like this > series does if such an assumption is recorded somewhere.
Thanks for pointing out the use case - I can see this happening in some case like adding a source code dependency from a few projects at once, so it doesn't sound too far-fetched. But no, I don't think this method of caching can support it; I think forbidding it and saying "if you want this to work, use a worktree" is pretty reasonable.
Will find a nice place to write it down.
- Emily