On Thu, 3 May 2018 11:12:27 -0700 Stefan Beller <sbeller@xxxxxxxxxx> 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.