Skip to contentSkip to conversation

Feature request: read git config from parent directory

DISCUSSION Dominique Dumont 2 participants 3 messages Dec 8, 2016 – Dec 10, 2016

lore
Share & tools
lore
#0 lore raw

Hello

I use the same machine for work and open-source contribution. In both cases, I deal with a lot of repositories. Depending on whether I commit for work or open-source activities, I must use a different mail address. I used to setup work address for each work repo in git local config, but this is no longer practical.

Since I use different directories for work and open-source, would it be possible for git to read irs config also from parent directories ? I.e. setup git to read config from ./.git/config then ../.gitconfig, ../../gitconfig until global ~/.gitconfig.

All the best

Signature · 2 lines
 https://github.com/dod38fr/   -o- http://search.cpan.org/~ddumont/
http://ddumont.wordpress.com/  -o-   irc: dod at irc.debian.org
#1 lore raw
Quoted 7 lines · Dominique Dumont

Hello

I use the same machine for work and open-source contribution. In both cases, I deal with a lot of repositories. Depending on whether I commit for work or open-source activities, I must use a different mail address. I used to setup work address for each work repo in git local config, but this is no longer practical.

Sounds like the same problem I have (and the reason I came up with conditional include [1]). Would that work for you (check out the example part in that patch)?

It's not supported yet. I'll need to address a few comments in the future reroll.

[1] http://public-inbox.org/git/[email protected]/

Quoted 4 lines

Since I use different directories for work and open-source, would it be possible for git to read irs config also from parent directories ? I.e. setup git to read config from ./.git/config then ../.gitconfig, ../../gitconfig until global ~/.gitconfig.

Signature · 1 line
Duy
#2 lore raw
Quoted 16 lines · On Friday, 9 December 2016 19:38:05 CET Duy Nguyen wrote:
Quoted 8 lines
Quoted 3 lines

Sounds like the same problem I have (and the reason I came up with conditional include [1]). Would that work for you (check out the example part in that patch)?

If I understand correcly, I would need to set up config include in each git
repository. This is as much work as setting up user.email in the same place.

Well, no. You set this up in ~/.gitconfig. If you need to add some settings in /abc/def/.gitconfig and expect repositories in this path to reach it via the parent chain, then you could write something like

[include "gitdir:/abc/def/"]
file = your-config-file

Quoted 8 lines

in ~/.gitconfig and achieve the same effect, because all repos will read ~/.gitconfig, and if it finds out the repo's location is inside /abc/def, your-config-file will be loaded. It could contain email settings or whatever.

So, instead of spreading .gitconfig files around and relying on parent-chain to reach them, you write a few filter rules in ~/.gitconfig to tell all the repos what to load.

oh... yes, that would solve my problem and have no impact on other user who don't need this feature.

I do hope that the improvement you proposed will be merged.

Thanks for the explanation.

All the best

Signature · 2 lines
 https://github.com/dod38fr/   -o- http://search.cpan.org/~ddumont/
http://ddumont.wordpress.com/  -o-   irc: dod at irc.debian.org