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

Reply via email to