Subject: Re: [PATCH 1/2] diff: use HEAD for attributes when using bare repository

From: Junio C Hamano <[email-masked]>
Date: Tue, 14 Mar 2023 09:54:24 -0700

"John Cai via GitGitGadget" <[email-masked]> writes:

> From: John Cai <[email-masked]>
>
> (a4cf900e diff: teach diff to read algorithm from diff driver,
> 2022-02-20) does not support bare repositories.

Wrong placement of opening parenthesis, i.e. "a4cf900e (diff: teach
diff to read algorithm from diff driver, 2023-02-20)".  The date is
also wrong.  Use "git show -s --format=reference a4cf900e".  Insert
its output directly to your editor instead of transcribing manually.

I do not think the commit is to blame in the first place for two
reasons.

 * Even in a bare repository, the attributes defined in the
   $GIT_DIR/info/attributes file are in effect, and the new feature
   added by a4cf900e should work just fine with it.

 * By definition, there is no working tree in a bare repository, and
   it always has been naturally expected we won't read attributes
   from working tree files.  This is in no way limited to the diff
   driver feature recently added.

So the above does not look like a good first sentence to explain
this change.

> Since running diff
> on bare repositories is often done on Git servers, it would be useful to
> allow bare repositories to also take advantage of setting the algorithm
> via the diff driver.

Since referring to in-tree attributes is often useful with any
command, not limited to "diff", I wonder if it is feasible to add
support for the --attr-source=<tree> option globally, instead of
implementing such an option piecemeal.  If your "git diff" in a bare
repository starts honoring attributes recorded in HEAD, don't your
users expect your "git log" and "git show" to also honor them?