On Sun, Sep 11, 2016 at 03:10:13PM -0700, Junio C Hamano wrote: > So a "ls-files" that is done internally in the end-user facing "git > grep --recurse-submodules" needs to be run _without_ recursing > itself at least once to learn "lib/" is a submodule. A flat "here > are everything we have" does not sound like a good building block. I do not use submodules myself, but I could imagine that you may have scripts outside of git that do not care about the submodule divisions at all, and would be happy with the flat block. E.g., our "make tags" target uses "git ls-files" so find all of the source files. I could imagine projects with submodules that would want to do so recursively (I could also imagine projects that do _not_ want to do so; it would depend on your workflow and how tightly bound the submodules are). Another plausible example would be something grep-like that has features git-grep does not (I don't use "ack", but perhaps "git ls-files --recurse-submodules -z | xargs --null ack ..." is something people would want to do). -Peff