This tool finds people that might be interested in a patch, by going
back through the history for each single hunk modified, and finding
people that reviewed, acknowledged, signed, or authored the code the
patch is modifying.
It does this by running
git blame incrementally on each hunk, and
finding the relevant commit message. After gathering all the relevant
people, it groups them to show what exactly was their role when the
participated in the development of the relevant commit, and on how many
relevant commits they participated. They are only displayed if they pass
a minimum threshold of participation.
It is similar the the
git contacts tool in the contrib area, which is a
rewrite of this tool, except that
git contacts does the absolute minimum;
git related is way superior in every way.
% git related master..fc/transport/improv Junio C Hamano <firstname.lastname@example.org> (signer: 90%, author: 5%) Felipe Contreras <email@example.com> (author: 25%, reviewer: 2%) Sverre Rabbelier <firstname.lastname@example.org> (author: 17%, acker: 2%, signer: 7%) Jeff King <email@example.com> (acker: 17%, author: 10%) Shawn O. Pearce <firstname.lastname@example.org> (author: 5%, signer: 2%, cced: 2%) Elijah Newren <email@example.com> (author: 10%)
In addition, it has an option to output the list of commits, instead of the
contributors, which allows you to easily find out the previous changes to the
lines your patches modify.
% git related -c master..fc/transport/improv 99d9ec0 Merge branch 'fc/transport-helper-no-refspec' 67c9c78 transport-helper: barf when user tries old:new 0460ed2 documentation: trivial style cleanups 126aac5 transport-helper: fix remote helper namespace regression 21610d8 transport-helper: clarify pushing without refspecs a93b4a0 transport-helper: warn when refspec is not used 664059f transport-helper: update remote helper namespace c4458ec fast-export: Allow pruned-references in mark file ...
Moreover, when sending patches for review, you can configure
git related to find relevant people that should be Cc’ed:
% git send-email --cc-cmd='git related' *.patch
git contacts has the following limitations:
1) Doesn't show the amount of involvement 2) Doesn't show the kind of involvement (reviewer, author) nor does it group people by their email address 3) Doesn't have the option to show the commit themselves 4) Doesn't have any options at all (--since, --min-percent)
Changes since v0.1:
Fix compatibility with older versions
Add -clong option
Improve performance by grouping line ranges
Felipe Contreras (12): Fix compatibility with Ruby 1.9 Add support for Ruby 1.8 Fix popen workaround Refactor blame parsing Pass multiple ranges to `git blame` test: add gitingnore file Add -clong option Add manpage build: add installation stuff readme: trivial updates test: add test-lib helper travis: initial configuration
Felipe Contreras wrote on 18 May 2014