On Mon, Feb 27, 2017 at 11:09:12AM -0800, Stefan Beller wrote:
> For worktrees these multiple config files sounded like
> the obvious solution, but I wonder if there was also
> some bike shedding about other solutions?
>
> I could imagine that we would want to have attributes
> for specific configuration, e.g.:
>
> --8<--
> [core]
> repositoryformatversion = 0
> filemode = true
> bare = false
> logallrefupdates = true
> [remote "origin"]
> url = git://github.com/gitster/git
> fetch = +refs/heads/*:refs/remotes/origin/*
> [attribute "submodules"]
> read = true
> # this will be read and respected by submodules as well:
> [url."internal-git-miror"]
> insteadOf = github.com
> [attribute "submodules"]
> read = false
> # This (and the beginning of this file) will not be respected
> # by submodules
> [credential]
> helper =
> -->8--
>
> This would change the semantics of a config file as the attribute for
> each setting depends on the location (was attribute.FOO.read =
> {true, false} read before).
I'm not enthused by this, just because there is a hidden dependency
between attribute.* sections and other ones. They _look_ like regular
config keys, but they really aren't.
I have a feeling that something like this would create unwelcome corner
cases in the config-writer, which is otherwise does not have to care
about which existing section of a file it adds a key to.
-Peff