On Tue, 24 Dec 2019, Segher Boessenkool wrote: > > That's because that commit also edits ChangeLog entries from other > > authors. When a commit adds / edits ChangeLog entries for more than one > > author (the difference between purely editing an existing entry and adding > > a new one, possibly under an existing date/author header, for a > > multi-author commit, is not something that can reliably be determined > > automatically), the conversion falls back to using the committer identity > > instead of picking one of the multiple relevant authors from the ChangeLog > > files. > > There is only one relevant author in r270511. It edits a few wrong path > names in the previous changelog entries. People often do similar things > (like fixing the commit date :-) )
Distinguishing "edits a previous ChangeLog entry" from "adds a new entry under a previous ChangeLog header for a change included in the commit" is a human judgement. (It's necessary to consider the case of a ChangeLog header not included in the new lines added by the commit when looking for an attribution in a ChangeLog file because multiple ChangeLog stanzas, separated by blank lines, under a single date/author header, is common usage for multiple consecutive commits by the same author, and sometimes non-consecutive commits depending on how they did merging.) > Either never use <account>@gcc.gnu.org, or always use it, don't do the > worst of both worlds? The heuristics here are to use an attribution from ChangeLog for the author where unambiguous, but to use the committer (always @gcc.gnu.org / @gnu.org [*], so avoiding attributions at the wrong company even where people were using multiple addresses simultaneously for different changes) as author if in doubt. I think that's better than either always or never using @gcc.gnu.org. git tools computing commit statistics can generally handle multiple email addresses with the same name automatically, and .mailmap can be used to specify more detailed mappings for past commits for at least git shortlog. [*] Except in the special case of "rolfh" from the gcc2 history, where we identified the author of the changes they committed but not who that user was as a committer, so gcc.map specifies that author identity. -- Joseph S. Myers j...@polyomino.org.uk