On 9/11/19 4:08 PM, Jeff King wrote:
On Wed, Sep 11, 2019 at 08:14:45AM +0200, Konstantinos Dalamagkidis wrote:

In my git configuration, I have an includeif section for work
related repositories that configures the user and sendemail

What kind of includeIf are you using? Does it work with an
unconditional include? This seems to work for me:

   $ git config --global include.path one
   $ git config --file ~/one sendemail.smtpserver one.example.com
   $ git send-email --dry-run -1 --to nobody | grep ^Server
   Server: one.example.com

   $ git config --global includeIf.gitdir:$PWD/.path two
   $ git config --file ~/two sendemail.smtpserver two.example.com
   $ git send-email --dry-run -1 --to nobody | grep ^Server
   Server: two.example.com

I.e. both unconditional and gitdir includes work for me. If you do
something similar, what output do you get?

I am using "includeIf.gitdir:/work". I tried to reproduce it at my home workstation where I have the exact same configuration, but in the beginning I couldn't. Then I realized, that at work the /work folder is actually a symlink to a different directory. When I did the same at home, I could reproduce the issue:

% pwd
% git send-email --dry-run -1 --to nobody | grep ^From
From: Konstantinos Dalamagkidis <work-em...@example.com>
% cd ../repo-symlink
% git send-email --dry-run -1 --to nobody | grep ^From
From: Konstantinos Dalamagkidis <personal-em...@example.com>
% realpath .

It appears that git-config and git-send-email parse the gitdir slightly differently when it comes to symlinks. More specifically git-send-email uses the realpath of the repository to determine which configuration to use. It also explains why nobody came across this problem before.


Reply via email to