Brandon Williams <[email protected]> writes:
>> If you are in a subdirectory of your superproject, say, a/,
>>
>> cd a && git ls-files --recurse-submodules -- "b*"
>>
>> I would expect we would recurse into the submodule at "a/b" and find
>> "b/file-at-top-of-B". What does the internal invocation to do so
>> would look like? I would think "git -C b --super=b ls-files" that
>> is run from "a".
Actually, the internal invocation may have to be
$ git --super=a/b ls-files -- "a/b*"
if the desired overall output needs to be in the "--full-name" mode.
That is, the top-level recursive one may be
cd a && git ls-files --recurse-submodules --full-name -- "b*"
This top-level "ls-files" will have "prefix" set to "a/". Because
it is run in the "--full-name" mode, after finding that the
submodule at "a/b" matches the given pathspec and deciding to
recurse into it, it needs to arrange that paths stored in the index
of the submodule are prefixed with "a/b/", not with "b/", when
shown.