On Thu, 3 May 2018 11:12:27 -0700
Stefan Beller <[email protected]> wrote:
> >> There are three different possible solutions that have more value:
> >> (a) The path value is documented as the path from the toplevel of the
> >> superproject to the mount point of the submodule. If 'the' refers to
> >> the superproject holding this submodule ('sub' holding 'nested'),
> >> the path would be expected to be path='nested'.
> >
> > What is "the", and why is it quoted?
>
> because it is unclear what is emphasizes.
> It could be the intermediate (direct) superproject, or it
> could be the topmost superproject (where the command was run from).
>
> Just having "the", makes it unclear which of both it refers to.
Ah, I see - so s/'the'/'the superproject'/
> >> (b) In case 'the' superproject is referring to the toplevel, which
> >> is the superproject in which the original command was invoked,
> >> then path is expected to be path='sub/nested'.
And here, s/'the' superproject/'the superproject'/
> > Same comment about "the", and I think s/toplevel, which is the
> > superproject in which the original command was invoked/outermost
> > superproject/.
>
> The outermost superproject may not be the one you invoke the
> command in.
Good point. Maybe "the superproject the original command was run from",
but I'm open to a better name. So I would write the beginning as
follows:
<your first paragraph starting with "When running">
Also, in git-submodule.txt, $path is documented to be the "name of the
submodule directory relative to the superproject", but "the
superproject" is ambiguous.
To resolve both these issues, we could:
(a) Change "the superproject" to "its immediate superproject", so
$path would be "nested" instead of "../nested".
(b) Change "the superproject" to "the superproject the original
command was run from", so $path would be "sub/nested" instead of
"../nested".
(c) Change "the superproject" to "the directory the original command
was run from", so $path would be "../sub/nested" instead of
"../nested".
Going back to the original patch:
> The behavior for (c) was introduced in 091a6eb0fe (submodule: drop the
> top-level requirement, 2013-06-16) the intent for $path seemed to be
> relative to $cwd to the submodule worktree, but that did not work for
> nested submodules, as the intermittent submodules were not included in
> the path.
The (c) behavior was never really introduced, right? 091a6eb0fe
attempted to introduce (c), but it didn't work when --recursive was
specified.