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
sections.
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
/work/repo
% git send-email --dry-run -1 --to nobody | grep ^From
From: Konstantinos Dalamagkidis <work-email@xxxxxxxxxxx>
% cd ../repo-symlink
% git send-email --dry-run -1 --to nobody | grep ^From
From: Konstantinos Dalamagkidis <personal-email@xxxxxxxxxxx>
% realpath .
/home/dalamagkidis/tmp/repo
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.
Rgds
Konstantinos