Author vs Committer
You may be wondering what the difference is between author and committer. The author is the person who originally wrote the work, whereas the committer is the person who last applied the work. So, if you send in a patch to a project and one of the core members applies the patch, both of you get credit — you as the author, and the core member as the committer.
What should I use?
For most use cases, you’ll want to use the author (
commit_author_email columns) instead of committer (
committer_email columns. That’s the relevant actor when you are wondering, for example, who wrote a piece of code or how many contributions a person made to a project.
This also applies to dates. Each commit has two dates: the date it was originally authored (
commit_author_when column), and the last date it was committed (
Checking distribution of commits across author/committer matches
SELECT repository_id, (CASE WHEN committer_email = commit_author_email AND committer_name = commit_author_name THEN 'Same' WHEN committer_email = commit_author_email AND committer_name != commit_author_name THEN 'Diff name' WHEN committer_email != commit_author_email AND committer_name = commit_author_name THEN 'Diff email' ELSE 'Diff' END) AS committer_vs_author FROM ref_commits NATURAL JOIN commits WHERE ref_name = 'HEAD';
And convert it to a bar chart: