Thanks for all the comments. What it sounds like is that using ls-files as a means to power a recursive git-grep may not be like the best approach (I assumed that would be the case but thought it a decent place to start). I agree that not all operating modes would be useful for a recursive ls-files, which is why I initially don't have support for them. I guess the question would be which modes would be worth supporting in a recursive case?