On Sat, Jun 10, 2017 at 02:07:12AM -0400, Jeff King wrote: > I think the repository object has to become a kitchen sink of sorts, > because we have tons of global variables representing repo-wide config. > ls-files doesn't respect a lot of config, but what should, e.g.: > > git config core.quotepath true > git -C submodule config core.quotepath false > git ls-files --recurse-submodules > > [...] > > [1] I wanted to see how Brandon's series behaved for this quotepath > case, but unfortunately I couldn't get it to work in even a simple > case. :( > > $ git ls-files --recurse-submodules > fatal: index file corrupt Ah, this was just hitting the bug mentioned later in the thread. With that fix, I can see that it does indeed behave differently than the current code: git config core.quotepath true git -C submodule config core.quotepath false (cd submodule && echo hello >buenos_días && git add . ) git ls-files --recurse-submodules shows: submodule/buenos_días before the patch series, and: "submodule/buenos_d\303\255as" after. Like I said, I doubt this is a bug that anybody cares much about, but it's hard to know what other repo-specific global-variable usage is lurking in low-level code. -Peff