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

Reply via email to