Thread (12 messages) 12 messages, 7 authors, 2019-08-01

Re: Git for Windows v2.23.0-rc0, was Re: [ANNOUNCE] Git v2.23.0-rc0

From: Ariadne Conill <hidden>
Date: 2019-08-01 01:38:27

Hello,

On Wed, Jul 31, 2019 at 8:00 PM Jeff King [off-list ref] wrote:
On Wed, Jul 31, 2019 at 05:21:25PM -0700, Jonathan Nieder wrote:
quoted
Although as Dscho mentions, it's particularly irritating because it is
not part of the paginated output.

I wonder if the ideal might not be to trigger it more selectively, when
the output actually changed due to a reflog entry.  I mean something
like

      commit 393a9dd0f9762c69f753a8fa0bc89c203c6b4e9e (HEAD, origin/foo, other/pu)
      Merge: 18598e40e6 1eba6eb1c2
      Author: A U Thor [off-list ref] (see "git help mailmap")
      Date:   Tue Jul 30 15:05:41 2019 -0700

          Merge branch 'jt/fetch-cdn-offload' into foo
I actually kind of like that, because it tells you exactly when it is
impacting things (not just that the mailmap was used, but that this
_particular_ name was mapped, which is going to be the most actionable
thing). But I do think the syntax above might end up breaking somebody
who's trying to parse it (people aren't supposed to be parsing log
output, but...).

Something like:

  Author: A U Thor [off-list ref]
  Original-Author: I M Mailmapped [off-list ref]

gives even more information while leaving the "Author:" line untouched.
But in introducing a new line, it may also be breaking somebody.
It also makes this entire exercise completely moot because not only
does it deadname the contributor, it discloses that it is deadnaming
the contributor while also telling you who they are now, which is even
worse than the current behaviour.  The purpose of this exercise is to
ensure that users have the *current* contact information of the
contributor by default, including their current name and e-mail.  My
entire goal behind transitioning this config default is to ensure that
git respects *present* identity information by default, while giving
access to the raw identity data in cases where it makes sense to do so
(such as historical research or whatever).  I don't really wish for
git to remind me of my previous identity while browsing through
historical git logs.  I also don't think most people care about the
previous identity data of contributors -- in most cases, if you're
looking up a commit's author, you're doing so because you intend to
ask them a question about the commit, and so, having the most current
identity data available is what actually makes sense.
I think all of these are riskier than just quietly engaging the mailmap.
That's syntactically identical, so no risk of parsing regressions That's
almost always going to be what people _actually_ want if there's a
mailmap in the repo. The only exception is if they're somehow trying to
do analysis on original versus mapped names. At which point they really
ought to be using a parseable format like --pretty=raw, or "%an <%ae>".
Precisely, which is why I think we should just flip the default.
However, as previously mentioned, it was requested to do a formal
transition for the config setting, just to be absolutely sure that
people are aware the default was going to flip.
quoted
is *particularly* unactionable in the current state where we're not
rewriting authors.  I think we should bite the bullet and just flip
the default to "true", with the config as an escape hatch to allow
going back to the old behavior.

Is it too late in the release cycle to do that?  If not, we can do
IMHO no, it is not too late. This is a new feature in this release, and
we're at -rc0. The point of the rc period is to find problems in the new
code. So certainly I think it is not too late to change our minds about
this feature. I could see an argument that instead of changing it now,
we should revert for v2.23 and work on it with less urgency during the
next cycle. But personally I'd see what a day or two of discussion turns
up; if everybody agrees on the path forward and the implementation isn't
complicated, it may be easiest to just proceed now.
Honestly, the current default is arguably an unintentional bug.  As
you note, it's a default that makes no sense and flipping it will give
people what they *actually* want.  Accordingly, I have thought, and
still think, that we're best off just flipping the default and saying
we fixed a bug, because the current behaviour is certainly perceived
by many people as being a bug -- in fact, when I first looked into
this, I thought it *was* a bug, only to find out that the default was
the way it was.  I'm certainly not alone in perceiving the current
behaviour as a bug, especially since `git shortlog` respects mailmap
by default and `git log` doesn't.
quoted
-- >8 --
Subject: log: use mailmap by default in interactive use
This seems OK to me, though I kind of wonder if anybody really wants
"auto". Unlike log.decorate, which changes the syntax, there is no real
reason to avoid mailmap when somebody else is parsing the output. And I
could imagine it is especially confusing if:

  git log --author=whoever

and

  git log | grep whoever | wc -l

do not agree.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help