Re: config-file includes
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Sep 26, 2011, 10:45 UTC
- Message-ID
- <CACsJy8BAVRAct=sxTpZ+b-ft1OjbY9oZG6uEXrcsTXw3CXnwSg@mail.gmail.com>
- In-Reply-To
- <20110923195829.GA27677@sigill.intra.peff.net>
On Sat, Sep 24, 2011 at 5:58 AM, Jeff King <peff@peff.net> wrote:
Show 21 quoted lines
> Here's one solution I've given a little thought to. Comments welcome. > > I've sometimes wanted an "include" mechanism in git config files. > Partially to just keep things tidier, partially to avoid > cutting-and-pasting between some repo-specific config, and partially > because I'd like a conditional inclusion mechanism[1]. I was thinking of > something that would be syntactically compatible but semantically > meaningless in current versions of git, like: > > [include] > path = /some/file > path = /some/other/file > path = ~/some/file/in/your/homedir > > You could extend this to look in refs, with something like: > > [include] > ref = meta:config > > which would resolve meta:config to a blob and examine it (i.e., it would > look at refs/heads/meta).
I had something similar [1], although I disregarded worktree content completely. One thing about this meta thing is fsck/prune must dig in config file in order not to accidentally remove something config file refers to.
Another thing is, what if I want to exclude certain part of the included config?
[1] http://thread.gmane.org/gmane.comp.version-control.git/163285/focus=163288
Show 11 quoted lines
> [1] I want conditional inclusion because sometimes the rules for config > entries changes from version to version. For example, I have > pager.diff set to a script in my ~/.gitconfig. But older versions of > git don't understand non-boolean values and barf. I'd really like to > do something like: > > [include-ifdef "has-pager-scripts"] > path = ~/.gitconfig-pager > > where "has-pager-scripts" would be a magic flag compiled into git > versions that understand that config.
But how far would you go with conditional expressions?
-- Duy