[ANNOUNCE] git-related v1.0

Felipe Contreras felipe.contreras at gmail.com
Thu May 27 01:55:30 BST 2021


git-related is a tool to find out people that might be interested in
your patch series.

It works by running `git blame` on every chunk your patches modify, and
then presents a summary showing the roles of each person:

  % git related --roles master..fc/asciidoctor/clean
  Junio C Hamano <gitster at pobox.com> (signer: 93%, author: 7%)
  brian m. carlson <sandals at crustytoothpaste.net> (author: 20%, helper: 3%)
  Christian Couder <chriscool at tuxfamily.org> (author: 7%, mentor: 7%)
  Jeff King <peff at peff.net> (author: 10%)
  Johannes Schindelin <Johannes.Schindelin at gmx.de> (author: 7%, signer: 3%)
  Martin Ågren <martin.agren at gmail.com> (author: 10%)

A lot of things have changed since v0.3, but the most important is the
addition of a completely new tool that does something similar: git-who.

Unlike git-related, git-who does not work on any particular patch
series, you can use any arguments `git log` accepts, and then presents a
similar output to git-related.

Therefore you can specify queries:

  % git who --roles -S'PERL_DEFINES' -- Makefile
  Junio C Hamano <gitster at pobox.com> (signer: 100%)
  Ævar Arnfjörð Bjarmason <avarab at gmail.com> (author: 75%, helper: 25%)
  Johannes Schindelin <johannes.schindelin at gmx.de> (helper: 25%)
  Dan Jacques <dnj at google.com> (author: 25%)

We can find out a summary for the whole history of git.git:

  % git who --roles --since=2000 --threshold=1
  Junio C Hamano <gitster at pobox.com> (signer: 64%, author: 15%, helper: 1%)
  Junio C Hamano <junkio at cox.net> (signer: 14%)
  Jeff King <peff at peff.net> (author: 8%, signer: 1%, reviewer: 1%)
  Johannes Schindelin <johannes.schindelin at gmx.de> (author: 4%)
  Shawn Pearce <spearce at spearce.org> (author: 3%, signer: 1%)
  Nguyễn Thái Ngọc Duy <pclouds at gmail.com> (author: 4%)
  Jonathan Nieder <jrnieder at gmail.com> (author: 2%, reviewer: 1%, signer: 1%)
  Linus Torvalds <torvalds at linux-foundation.org> (author: 2%)
  Michael Haggerty <mhagger at alum.mit.edu> (author: 2%)
  René Scharfe <l.s.r at web.de> (author: 2%)
  Ævar Arnfjörð Bjarmason <avarab at gmail.com> (author: 2%)
  brian m. carlson <sandals at crustytoothpaste.net> (author: 2%)
  Stefan Beller <sbeller at google.com> (signer: 1%)
  Eric Wong <normalperson at yhbt.net> (signer: 1%, acker: 1%)
  Elijah Newren <newren at gmail.com> (author: 2%)
  Christian Couder <chriscool at tuxfamily.org> (author: 1%)
  Linus Torvalds <torvalds at osdl.org> (signer: 1%)
  Derrick Stolee <dstolee at microsoft.com> (author: 1%)
  Jakub Narębski <jnareb at gmail.com> (author: 1%)
  Johannes Sixt <j6t at kdbg.org> (author: 1%)
  Eric Sunshine <sunshine at sunshineco.com> (author: 1%)
  Stefan Beller <stefanbeller at gmail.com> (author: 1%)
  Eric Wong <e at 80x24.org> (author: 1%)
  SZEDER Gábor <szeder.dev at gmail.com> (author: 1%)
  Paul Mackerras <paulus at samba.org> (author: 1%, signer: 1%)
  Felipe Contreras <felipe.contreras at gmail.com> (author: 1%)
  Matthieu Moy <Matthieu.Moy at imag.fr> (signer: 1%)

git-related is similar to contrib/contacts/git-contacts, except with
many many more features, and less bugs. In fact, git-contacts is a
rewrite of git-related and it never achieved parity.

The v1.0 release consists of 81 commits, and here are some of the
important changes:

 * Make roles optional with --roles
 * Add new --files mode (much faster)
 * Fixed bug with boundary commits (present in git-contacts too)
 * Fixed bug with certain mailmaps
 * Parse many more roles (top 10%)
 * Completely revamped documentation
 * Add color
 * Improved performance
 * Improved tests
 * Code considerably simplified
 * Split option parsing into a new gem

To install them just:

  gem install parseopt
  make install

It's written in Ruby, so you need Ruby.



Felipe Contreras

More information about the git-announce mailing list