Hi,

On Thu, 30 May 2019, Denton Liu wrote:

> 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.

> 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

Reply via email to