On Wed, Jul 12, 2017 at 11:24:47AM -0700, Jonathan Nieder wrote: > Jeff King wrote: > > On Wed, Jul 12, 2017 at 11:06:03AM -0700, Brandon Williams wrote: > > >> Each 'struct repository' does have its own config so we could > >> potentially want a config in a submodule to override some config in the > >> superproject. Though for right now it may be simpler to not worry about > >> doing this overriding, mostly because you would only want to allow > >> overriding of some configuration and not all configuration. One example > >> would be the number of threads allowed in grep, > [...] > > I think that's probably one of the more complicated cases, and I don't > > think it really needs to be done on day one. > > That's fair. Could you give an example of a simpler case? I think core.quotepath that I gave is one example that I'd expect to work differently than it does in 'next'. Though I really think that's a fairly uninteresting one, as it's extremely unlikely to be set on a per-repo basis. Something like color.grep.* is in the same boat (I think it ought to respect submodule config, but I'd be surprised if anybody cares). I know those are kind of lame examples, and if they remain broken forever, I don't know if anybody would care. I'm more concerned about us missing a case that causes a regression (and unlike some regressions, where you say "oops, a bug" and fix it, I'd worry that we'll have made a big jump to an in-process model, and the only fixes are "implement a complete split-config solution" or "revert back to multiple processes"). I do agree that not having concrete examples makes it harder to reason about the desired semantics. -Peff