Subject: Re: [PATCH 0/2] diff: support bare repositories when reading gitattributes for diff algorithm

From: Junio C Hamano <[email-masked]>
Date: Tue, 14 Mar 2023 13:44:11 -0700

John Cai <[email-masked]> writes:

> I wasn't aware of those config options. Indeed that's a good option! My only
> concern with that is that there is already some precedence for passing a
> <tree-ish> as a source for attributes in [1], so I thought adding a command line
> option would be somewhat consistent.
>
> But I can also see the benefit of using a config value since there is also
> precedence because of mailmap.file and mailmap.blob. Not sure what others think,
> but this may be the less invasive way to go.

I actually hate these one-off variables, and I wish we didn't do
mailmap.file or mailmap.blob at all.  Instead we could have taught
the machinery to read from $GIT_DIR/info/mailmap just like the
exclude and the attribute machinery already knows to read excludea
and attributes files in the directory.

As your "per filetype (determined by the attribute) diff algorithm
in a bare repository" feature already depends on being able to use
config (as the look-up is "attributes determines the diff filetype
name, and then diff.<filetype>.algo is looked up in the config") to
configure, it does not sound too bad to add the attribute info in
the $GIT_DIR/info/attributes file in your bare repository (and you'd
set the algorithm in $GIT_DIR/config file there), and it would just
work without any new "read from HEAD" feature, I would presume?

Thanks.