Re: What's cooking in git.git (Jul 2019, #06; Thu, 25)
From: Ariadne Conill <hidden>
Date: 2019-08-09 03:04:32
Hello, On Thu, Aug 8, 2019 at 9:07 PM Taylor Blau [off-list ref] wrote:
Hi Ariadne, Thank you for replying. I'm replying myself to the quoted hunks below, and I very much appreciate your input. I would like to note that I myself did not come up with these concerns alone, they were merely suggested to me by a coworker, and I found them concerning. I am not myself transgender, instead I am simply raising an issue that I found myself concerning.
Sure, there are concerns with the use of .mailmap being the primary source of truth for identities in a git repository. However, this is the present design. I'm not against improving the design, but see no reason to block changes that *improve quality of life* for people who are both transgender (or simply have changed their name for whatever reason) and those who collaborate with said people. I also believe that this is an *intended* use of the design, since mailmap allows rewriting names. If it is not intended, then why does mailmap support rewriting names? This isn't an either/or thing. This is more along the lines of -- lets improve what we have now -- and deal with making a more robust mailmap replacement down the line, because that is going to require more careful consideration.
On Thu, Aug 08, 2019 at 09:34:15PM -0400, Ariadne Conill wrote:quoted
Hello, On August 8, 2019 8:13:15 PM EDT, Taylor Blau [off-list ref] wrote:quoted
Hi Junio, On Thu, Jul 25, 2019 at 05:19:23PM -0700, Junio C Hamano wrote:quoted
Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. The seventh batch is in; I've merged fix-up topics that has been in 'master' for some time (i.e. up to the third batch of this cycle) down to 'maint'. You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- [Graduated to "master"] *snip* * ac/log-use-mailmap-by-default-transition (2019-07-15) 3 commits (merged to 'next' on 2019-07-19 at e5669de950) + tests: defang pager tests by explicitly disabling the log.mailmapwarningquoted
+ documentation: mention --no-use-mailmap and log.mailmap falsesettingquoted
+ log: add warning for unspecified log.mailmap setting The "git log" command learns to issue a warning when log.mailmap configuration is not set and --[no-]mailmap option is not used, to prepare users for future versions of Git that uses the mailmap by default.Sorry for jumping into this discussion quite late. I was discussing this change with a colleague of mine who pointed out an issue with the eventual new defaults. I'd like to re-raise the issues they shared with me on the list for discussion, and if agreement is reached, I will send a series that reverts these changes. If a transgender person uses '.mailmap' to rewrite their deadname to their legal name (as was the original motivation in [1]), there are two potential issues:What does myself being transgender have to do with anything? Please explain. My motivation was to allow anyone to document their name change. People other than transgender individuals do change their names.I think that the '.mailmap' is a good solution for other identity changes, like when someone leaves a company, acquires an email address, and wishes to take their contributions with them.
Then maybe .mailmap should be scoped to rewriting e-mail addresses only.
I don't think that being transgender changes one's usage of '.mailmap'. I do, however, share the concern with my coworker that these patches are being used to assist in deadname rewriting. It was my impression that these patches are a response to the thread [1] that I linked in my last email, and thus that eventually turning on '.mailmap'-rewriting by default was the solution given to Phil Hord.
Yes, they *are* being used to assist in deadname rewriting, because that is the mechanism that already exists in the code to facilitate it. In what case would you *not* want to know the current name of the person who authored a contribution? There are legal situations involving auditing the copyright status of contributions where *current* identity information for the author is desirable over what was there historically, because you need to contact the author and find out his or her wishes involving the code. Situations like relicensing, for example.
quoted
Perhaps the fact that I am transgender means I am more attuned to the risks involved in using .mailmap in this way.I'll certainly defer to your opinion on how this feature affects transgender users over mine, and very much appreciate your perspective and insight.quoted
quoted
- The '.mailmap' provides a list of transgender individuals, along with their deadname, which can be used to harass them.This is potentially a problem but it's not as bad as you depict. A mailmap rule can match against e-mail only, which is precisely what I have done in my projects.Ah, I may be severely mistaken -- my memory was that '.mailmap' rewriting could be used to rewrite both name and email, not merely email. I thought that records could take: A U Thor [off-list ref] -> B C Xyzz [off-list ref] instead of canonicalizing by email alone. If this is the case, then I completely agree and share the opinion that this is not as bad as I originally depicted.
Yes, you can write mailmap entries with just the email like I have done in pkgconf for example[1].
quoted
And to be clear, anybody who is out there doxing transgender people are going to be using sources that are more reliable than a mailmap file.Indeed. I think the '.mailmap' file doesn't contain much information if it doesn't remap author names, and certainly individuals can choose not to use it.quoted
quoted
- If they are not in control of the '.mailmap', and 'log.mailmap' is not specifiable (and instead defaults to 'true'), then a malicious maintainer or contributor can submit a change that rewrites their real name to their deadname, and harasses them further.The log.mailmap setting remains specifiable in these changes. Sure, a maintainer can abuse mailmap, but they could already do so. This commit changes absolutely nothing in that regard.I think that I might be mistaken about the intentions of your patch series. Do you hope to eventually remove 'log.mailmap', instead having all clients automatically obey the '.mailmap'? If so, I think that this does change the behavior, at least down the road. If a maintainer wishes to abuse mailmap, today no one has to see it, because they have the option to turn off mailmap rewriting. If this setting doesn't exist, it gives more power to maintainers and contributors with write-level access to force mailmap rewriting to take place.
I have no interest in removing the log.mailmap setting, but I would like to see the setting behave consistently across all applets. In other words, "git shortlog", "git log" and "git blame" should have the same behaviour given log.mailmap being set a certain way. They presently don't have consistent behaviour (shortlog and blame always use mailmap), and I found that surprising. This allows people to look at the raw data if they have explicit interest in it, by setting log.mailmap to false, and ensuring that people get reasonable behaviour by default (log.mailmap is default to true). I also want to explicitly state that I believe wholeheartedly that people will fork projects with a hostile maintainer who renames people in the mailmap file to derogatory names, so I think that is a non-issue. Somebody who is trolling by using mailmap files to rewrite contributor names is indicative that a project shouldn't be taken seriously.
quoted
The commit does make `git shortlog` and `git log` consistent which is what most people expect.quoted
This issue was not raised in the original discussion, but it's clear that this has the potential be used for bad, not good.Every tool has the potential to be abused. I would not have submitted this merge request if I thought that the benefits outweighed the trolling possibilities.Yes, I agree that tools can be abused, and I do not question your judgement in submitting this patch whatsoever. Again, I was merely pointing out that there does seem to be a greater potential for this tool to be misused, but only if I am understanding it correctly.
Based on your misunderstanding of the mailmap feature, I believe you're not understanding the patches correctly.
quoted
quoted
Given that the release is so close, I propose we revert this change before v2.23.0 is tagged. After that, we ought to discuss ways for folks to change how their name is displayed in porcelain commands, and thoroughly consider whether or not a new plan is exploitable. If you think this is a good course of action, I will send a series to revert the changes that were queued here.I do not think this is a good course of action and I think your justification is extremely flimsy. While I would like to see the ability to commit a special commit that documents a name change, this does not change the fact that such commits will be mined in the same way. While I am glad that you are concerned about this from a trolling and harassment issue, I propose that you should allow individuals to make their own assessments on what they should do regarding documenting their changes using the mailmap file.I'm happy to defer to the judgement of others, here; again I merely wanted to raise a concern and share a proposed course of action in response to it. If others do not buy into the justification, or if I have misunderstood the feature, then we ought to let the release proceed as normal.
As previously stated, I think that your justification is flimsy, but I think that's simply due to a misunderstanding of how mailmap works, and to what level of consistency mailmap is respected. Hopefully this explanation is useful. [1]: https://git.sr.ht/~kaniini/pkgconf/tree/master/.mailmap Ariadne