git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / Atom feed
* [PATCH] log: use mailmap by default
@ 2019-07-11  8:19 Ariadne Conill
  2019-07-11 15:19 ` brian m. carlson
  0 siblings, 1 reply; 5+ messages in thread
From: Ariadne Conill @ 2019-07-11  8:19 UTC (permalink / raw)
  To: git; +Cc: Ariadne Conill

The `git log` command shows the author and committer name recorded in
the git repository itself, while other commands respect `.mailmap`
by default.  I believe this is a bad design: it causes log entries to
reflect inaccurate information: anyone who changes their name or
e-mail address will not have that change (recorded in mailmap file)
reflected when using `git log` by default.

Anyone who explicitly wants the current behaviour can clearly request
it by setting the `log.mailmap` setting to `false` in their
`.gitconfig` file.

Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
---
 builtin/log.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/log.c b/builtin/log.c
index 7c8767d3bc..3d2ce8fa3d 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -47,7 +47,7 @@ static int default_follow;
 static int default_show_signature;
 static int decoration_style;
 static int decoration_given;
-static int use_mailmap_config;
+static int use_mailmap_config = 1;
 static const char *fmt_patch_subject_prefix = "PATCH";
 static const char *fmt_pretty;
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] log: use mailmap by default
  2019-07-11  8:19 [PATCH] log: use mailmap by default Ariadne Conill
@ 2019-07-11 15:19 ` brian m. carlson
  2019-07-11 16:25   ` Ariadne Conill
  0 siblings, 1 reply; 5+ messages in thread
From: brian m. carlson @ 2019-07-11 15:19 UTC (permalink / raw)
  To: Ariadne Conill; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 1069 bytes --]

On 2019-07-11 at 08:19:58, Ariadne Conill wrote:
> The `git log` command shows the author and committer name recorded in
> the git repository itself, while other commands respect `.mailmap`
> by default.  I believe this is a bad design: it causes log entries to
> reflect inaccurate information: anyone who changes their name or
> e-mail address will not have that change (recorded in mailmap file)
> reflected when using `git log` by default.
> 
> Anyone who explicitly wants the current behaviour can clearly request
> it by setting the `log.mailmap` setting to `false` in their
> `.gitconfig` file.

While I'm in favor of using the mailmap by default, typically we want a
way people can override a default setting from the command line.

So in this case, we have "--use-mailmap", but we don't have a
"--no-use-mailmap" (at least, it's not documented in the manpage). I
think we'd want to add such an option so that people can set it if they
need non-default behavior.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 868 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] log: use mailmap by default
  2019-07-11 15:19 ` brian m. carlson
@ 2019-07-11 16:25   ` Ariadne Conill
  2019-07-11 17:09     ` Martin Ågren
  0 siblings, 1 reply; 5+ messages in thread
From: Ariadne Conill @ 2019-07-11 16:25 UTC (permalink / raw)
  To: brian m. carlson, Ariadne Conill, git

Hello,

On Thu, Jul 11, 2019 at 10:19 AM brian m. carlson
<sandals@crustytoothpaste.net> wrote:
>
> On 2019-07-11 at 08:19:58, Ariadne Conill wrote:
> > The `git log` command shows the author and committer name recorded in
> > the git repository itself, while other commands respect `.mailmap`
> > by default.  I believe this is a bad design: it causes log entries to
> > reflect inaccurate information: anyone who changes their name or
> > e-mail address will not have that change (recorded in mailmap file)
> > reflected when using `git log` by default.
> >
> > Anyone who explicitly wants the current behaviour can clearly request
> > it by setting the `log.mailmap` setting to `false` in their
> > `.gitconfig` file.
>
> While I'm in favor of using the mailmap by default, typically we want a
> way people can override a default setting from the command line.
>
> So in this case, we have "--use-mailmap", but we don't have a
> "--no-use-mailmap" (at least, it's not documented in the manpage). I
> think we'd want to add such an option so that people can set it if they
> need non-default behavior.

I agree that there is probably some useful reasons to have this
option, so I can add an option that forces mailmap usage off to
supplement the --use-mailmap option.  It's no problem.  I will
generate a new patch series in a few minutes.

Thanks for reviewing!

Ariadne

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] log: use mailmap by default
  2019-07-11 16:25   ` Ariadne Conill
@ 2019-07-11 17:09     ` Martin Ågren
  2019-07-11 17:42       ` Ariadne Conill
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Ågren @ 2019-07-11 17:09 UTC (permalink / raw)
  To: Ariadne Conill; +Cc: brian m. carlson, Git Mailing List

Hi Ariadne,

Welcome to the list!

On Thu, 11 Jul 2019 at 18:39, Ariadne Conill <ariadne@dereferenced.org> wrote:
>
> Hello,
>
> On Thu, Jul 11, 2019 at 10:19 AM brian m. carlson
> <sandals@crustytoothpaste.net> wrote:
> >
> > On 2019-07-11 at 08:19:58, Ariadne Conill wrote:
> > > The `git log` command shows the author and committer name recorded in
> > > the git repository itself, while other commands respect `.mailmap`
> > > by default.  I believe this is a bad design: it causes log entries to
> > > reflect inaccurate information: anyone who changes their name or
> > > e-mail address will not have that change (recorded in mailmap file)
> > > reflected when using `git log` by default.
> > >
> > > Anyone who explicitly wants the current behaviour can clearly request
> > > it by setting the `log.mailmap` setting to `false` in their
> > > `.gitconfig` file.

It would be useful with some tests for this. That would be a nice way to
showcase how this is meant to work, and to protect this from being
broken in the future. From looking around in t/, it looks like
t4203-mailmap.sh could be a good spot.

> > While I'm in favor of using the mailmap by default, typically we want a
> > way people can override a default setting from the command line.
> >
> > So in this case, we have "--use-mailmap", but we don't have a
> > "--no-use-mailmap" (at least, it's not documented in the manpage). I
> > think we'd want to add such an option so that people can set it if they
> > need non-default behavior.
>
> I agree that there is probably some useful reasons to have this
> option, so I can add an option that forces mailmap usage off to
> supplement the --use-mailmap option.  It's no problem.  I will
> generate a new patch series in a few minutes.

There are some tests already in t4203 which test that for example `git
log --use-mailmap ...` does the right thing. If your implementation is
correct, it should be possible to drop `--use-mailmap` from there and
everything should work. It would then be very useful to have tests that
`--no-use-mailmap` does the right thing. There's also some testing
around the `log.mailmap` config, which you should probably adapt and
possibly extend.

The documentation for `log.mailmap` will need to be updated, since
right now it says (or at least implies) that the default is "false".

This looks like one of those very small and simple changes that turn
into quite some work to ensure that the tests are all there and that
the documentation is up to date. :-)

Cheers

Martin

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] log: use mailmap by default
  2019-07-11 17:09     ` Martin Ågren
@ 2019-07-11 17:42       ` Ariadne Conill
  0 siblings, 0 replies; 5+ messages in thread
From: Ariadne Conill @ 2019-07-11 17:42 UTC (permalink / raw)
  To: Martin Ågren; +Cc: brian m. carlson, Git Mailing List

Hello,

On Thu, Jul 11, 2019 at 12:09 PM Martin Ågren <martin.agren@gmail.com> wrote:
>
> Hi Ariadne,
>
> Welcome to the list!

Thanks!

> On Thu, 11 Jul 2019 at 18:39, Ariadne Conill <ariadne@dereferenced.org> wrote:
> >
> > Hello,
> >
> > On Thu, Jul 11, 2019 at 10:19 AM brian m. carlson
> > <sandals@crustytoothpaste.net> wrote:
> > >
> > > On 2019-07-11 at 08:19:58, Ariadne Conill wrote:
> > > > The `git log` command shows the author and committer name recorded in
> > > > the git repository itself, while other commands respect `.mailmap`
> > > > by default.  I believe this is a bad design: it causes log entries to
> > > > reflect inaccurate information: anyone who changes their name or
> > > > e-mail address will not have that change (recorded in mailmap file)
> > > > reflected when using `git log` by default.
> > > >
> > > > Anyone who explicitly wants the current behaviour can clearly request
> > > > it by setting the `log.mailmap` setting to `false` in their
> > > > `.gitconfig` file.
>
> It would be useful with some tests for this. That would be a nice way to
> showcase how this is meant to work, and to protect this from being
> broken in the future. From looking around in t/, it looks like
> t4203-mailmap.sh could be a good spot.

I agree.  I added a regression test to t4203-mailmap.sh in my second
go around, already.

> > > While I'm in favor of using the mailmap by default, typically we want a
> > > way people can override a default setting from the command line.
> > >
> > > So in this case, we have "--use-mailmap", but we don't have a
> > > "--no-use-mailmap" (at least, it's not documented in the manpage). I
> > > think we'd want to add such an option so that people can set it if they
> > > need non-default behavior.
> >
> > I agree that there is probably some useful reasons to have this
> > option, so I can add an option that forces mailmap usage off to
> > supplement the --use-mailmap option.  It's no problem.  I will
> > generate a new patch series in a few minutes.
>
> There are some tests already in t4203 which test that for example `git
> log --use-mailmap ...` does the right thing. If your implementation is
> correct, it should be possible to drop `--use-mailmap` from there and
> everything should work. It would then be very useful to have tests that
> `--no-use-mailmap` does the right thing. There's also some testing
> around the `log.mailmap` config, which you should probably adapt and
> possibly extend.

Alright, I'll adapt the tests as proposed.  I agree with your
conclusion that dropping `--use-mailmap` should be perfectly safe and
not cause any regressions in the testsuite.

I already did add a regression test for `--no-use-mailmap` which tests
it with `-c log.mailmap=True`.

> The documentation for `log.mailmap` will need to be updated, since
> right now it says (or at least implies) that the default is "false".

Yeah, I just noticed the documentation needs to be updated for this
change.  That will be resolved in v3, as well.

> This looks like one of those very small and simple changes that turn
> into quite some work to ensure that the tests are all there and that
> the documentation is up to date. :-)

Yeah, this is definitely more docs and test oriented I think.  Thanks
for the review.

Ariadne

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, back to index

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-11  8:19 [PATCH] log: use mailmap by default Ariadne Conill
2019-07-11 15:19 ` brian m. carlson
2019-07-11 16:25   ` Ariadne Conill
2019-07-11 17:09     ` Martin Ågren
2019-07-11 17:42       ` Ariadne Conill

git@vger.kernel.org list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Example config snippet for mirrors

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.org/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox