smontanari / code-forensics

A toolset for code analysis and report visualisation
383 stars 45 forks source link

Request: Option to group contributors with email (instead of names) #67

Closed ghost closed 3 years ago

ghost commented 3 years ago

Hi, I have a quite large git repo with history which I cannot modify. Sometimes people have made commits with wrongly configured names, so there's collision when I try to generate report. (error about duplicated name of developer)

I was thinking that maybe grouping with just emails gonna be less prone to failure.

smontanari commented 3 years ago

I'm not sure I correctly understand your request, but if your problem is having the same contributor appearing with multiple identities and/or email addresses, there are two ways to solve that:

  1. Use the contributors field in the configuration files, as documented.
  2. Use a .mailmap file (see #61)

The latter option gives you the ability to merge authors referring to the user name as well user email, so it could be more suitable to help you achieve your goal

ghost commented 3 years ago

Thanks for answer. :)

Maybe it's gonna be easier if I explain what I'm doing now.

Basically I have script which is used to generate mapping devs to teams. I take emails and names from git, and I take emails and name of team from excel file. I've run into issue that there are two commits with author's name "Adam", but they were made by two different people (with different mails).

I think .mailmap would help with issue, but do I gonna loose teams? And instead of layers I gonna need to create extra reports? Or can I mix contributors and .mailmap?

Edit: It's probably obvious, but probably worth being somewhere noted: Because I create teams I need to group people. If there's someone who has changed git config, then I need to use aliases. But code-forensics has issue if aliases are duplicated.

smontanari commented 3 years ago

.mailmap will help you to normalise author names, i.e. collate all aliases or emails into a single user/dev name. Once you have that, you should be able to define your teams around it, i.e. combine those unique dev names into distinct groups/teams. What you need to do is just refer to the unique user/dev names (as specified in the .mailmap) in your gupfile.js