git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/15] New git-related helper
@ 2013-05-18 11:46 Felipe Contreras
  2013-05-18 11:46 ` [PATCH v5 01/15] Add new git-related helper to contrib Felipe Contreras
                   ` (14 more replies)
  0 siblings, 15 replies; 28+ messages in thread
From: Felipe Contreras @ 2013-05-18 11:46 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Ramkumar Ramachandra, Duy Nguyen,
	Felipe Contreras

Hi,

Here goes version 5. I decided to start with a very very minimal working
version that is only 124 lines of code, then slowly but steadily introduce all
the fancy features. I also tweaked the defaults so they give more meaninful
results (IMO).

I also fixed the parsing of diffs so that it tackles corner case Junio
mentioned.

This script allows you to get a list of relevant persons to Cc when sending a
patch series.

  % git related v1.8.1.6^^1..v1.8.1.6^^2
  Junio C Hamano <gitster@pobox.com> (signer: 92%, author: 7%)
  Nguyễn Thái Ngọc Duy <pclouds@gmail.com> (author: 38%)
  Michael Haggerty <mhagger@alum.mit.edu> (author: 15%)

It finds people that might be interesting 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 then
parsing the 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.

The code finds the changes in each commit in the list, runs 'git blame'
to see which other commits are relevant to those lines, and then adds
the author and signer to the list.

Finally, it calculates what percentage of the total relevant commits
each person was involved in, and if it passes the threshold, it goes in.

You can also choose to show the commits themselves:

  % git related --commits v1.8.1.6^^1..v1.8.1.6^^2
  9db9eec attr: avoid calling find_basename() twice per path
  94bc671 Add directory pattern matching to attributes
  82dce99 attr: more matching optimizations from .gitignore
  593cb88 exclude: split basename matching code into a separate function
  b559263 exclude: split pathname matching code into a separate function
  4742d13 attr: avoid searching for basename on every match
  f950eb9 rename pathspec_prefix() to common_prefix() and move to dir.[ch]
  4a085b1 consolidate pathspec_prefix and common_prefix
  d932f4e Rename git_checkattr() to git_check_attr()
  2d72174 Extract a function collect_all_attrs()
  8cf2a84 Add string comparison functions that respect the ignore_case variable.
  2c5b011 dir.c: Fix two minor grammatical errors in comments
  377d9c4 Makefile: update the default build options for AIX

But wait, there's more: you can also specify a list of patch files, which means
this can be used for 'git send-emails' --cc-cmd option.

I don't know about you, but I've found this script incredibly useful.

Felipe Contreras (15):
  Add new git-related helper to contrib
  contrib: related: add option parsing
  contrib: related: sort by amount of involvement
  contrib: related: print the amount of involvement
  contrib: related: add helper Person classes
  contrib: related: show role count
  contrib: related: add support for more roles
  contrib: related: group persons with same email
  contrib: related: add mailmap support
  contrib: related: allow usage on other directories
  contrib: related: add support for multiple patches
  contrib: related: add option to show commits
  contrib: related: add option to parse from committish
  contrib: related: parse committish like format-patch
  contrib: related: fix parsing of rev-list args

 contrib/related/git-related | 312 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 312 insertions(+)
 create mode 100755 contrib/related/git-related

-- 
1.8.3.rc2.542.g24820ba

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2013-05-19 21:14 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-18 11:46 [PATCH v5 00/15] New git-related helper Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 01/15] Add new git-related helper to contrib Felipe Contreras
2013-05-18 11:55   ` Felipe Contreras
2013-05-19  7:42     ` Junio C Hamano
2013-05-19  8:29       ` Felipe Contreras
2013-05-19 14:40   ` Ramkumar Ramachandra
2013-05-19 15:05     ` Felipe Contreras
2013-05-19 15:13       ` Ramkumar Ramachandra
2013-05-19 15:41         ` Felipe Contreras
2013-05-19 21:14           ` David Aguilar
2013-05-19 15:15       ` Ramkumar Ramachandra
2013-05-19 15:17         ` Ramkumar Ramachandra
2013-05-19 15:45           ` Felipe Contreras
2013-05-19 15:48       ` Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 02/15] contrib: related: add option parsing Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 03/15] contrib: related: sort by amount of involvement Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 04/15] contrib: related: print the " Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 05/15] contrib: related: add helper Person classes Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 06/15] contrib: related: show role count Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 07/15] contrib: related: add support for more roles Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 08/15] contrib: related: group persons with same email Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 09/15] contrib: related: add mailmap support Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 10/15] contrib: related: allow usage on other directories Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 11/15] contrib: related: add support for multiple patches Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 12/15] contrib: related: add option to show commits Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 13/15] contrib: related: add option to parse from committish Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 14/15] contrib: related: parse committish like format-patch Felipe Contreras
2013-05-18 11:46 ` [PATCH v5 15/15] contrib: related: fix parsing of rev-list args Felipe Contreras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).