[ANNOUNCE] git-related v1.0
Felipe Contreras
2021-05-27 00:55:30 UTC

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