Re: [RFC PATCH] config: learn the "onbranch:" includeIf condition
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- May 31, 2019, 12:58 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1905311453420.44@tvgsbejvaqbjf.bet>
- In-Reply-To
- <7b60e58ba554768fd915e4f5c00a97737707ed42.1559263024.git.liu.denton@gmail.com>
Hi,
On Thu, 30 May 2019, Denton Liu wrote:
Show 8 quoted lines
> Currently, if a user wishes to have individual settings per branch, they > are required to manually keep track of the settings in their head and > manually set the options on the command-line or change the config at > each branch. > > Teach config the "onbranch:" includeIf condition so that it can > conditionally include configuration files if the branch is checked out > in the current worktree.
What a coincidence. I actually wished for something like this, to have branch-specific aliases.
However, I would need this to handle patterns (via `wildmatch()`?) rather than branch names.
Show 15 quoted lines
> I decided to go ahead and implement the includeIf onbranch semantics for > fun. For completeness, I'm sending it to the list but I'm not really > sure if this should get merged, since I don't really have a use-case for > this, especially if we go the branch-specific format-patch config route. > > Another thing to note is that this change doesn't completely cover all > the use-cases that the branch-specific format-patch does. In particular, > if I run > > $ git checkout foo > $ git format-patch master..bar > > with the `format.bar.*`, we'd get bar-specific configs, whereas with > `includeIf "onbranch:bar"`, we'd fail to include bar-specific configs > and, more dangerously, we'd be including foo's configs.
I actually think that this is fine. "on branch" means that you are on the specified branch, not that you merely mention the branch name on the command-line (in which case there would be the ambiguity "did the user mean `master` or `bar`?").
Ciao, Dscho