contrib / contacts / git-contacts.txton commit builtin/commit.c: extract ignore_non_trailer() helper function (073bd75)
   1git-contacts(1)
   2===============
   3
   4NAME
   5----
   6git-contacts - List people who might be interested in a set of changes
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git contacts' (<patch>|<range>|<rev>)...
  13
  14
  15DESCRIPTION
  16-----------
  17
  18Given a set of changes, specified as patch files or revisions, determine people
  19who might be interested in those changes.  This is done by consulting the
  20history of each patch or revision hunk to find people mentioned by commits
  21which touched the lines of files under consideration.
  22
  23Input consists of one or more patch files or revision arguments.  A revision
  24argument can be a range or a single `<rev>` which is interpreted as
  25`<rev>..HEAD`, thus the same revision arguments are accepted as for
  26linkgit:git-format-patch[1]. Patch files and revision arguments can be combined
  27in the same invocation.
  28
  29This command can be useful for determining the list of people with whom to
  30discuss proposed changes, or for finding the list of recipients to Cc: when
  31submitting a patch series via `git send-email`. For the latter case, `git
  32contacts` can be used as the argument to `git send-email`'s `--cc-cmd` option.
  33
  34
  35DISCUSSION
  36----------
  37
  38`git blame` is invoked for each hunk in a patch file or revision.  For each
  39commit mentioned by `git blame`, the commit message is consulted for people who
  40authored, reviewed, signed, acknowledged, or were Cc:'d.  Once the list of
  41participants is known, each person's relevance is computed by considering how
  42many commits mentioned that person compared with the total number of commits
  43under consideration.  The final output consists only of participants who exceed
  44a minimum threshold of participation.
  45
  46
  47OUTPUT
  48------
  49
  50For each person of interest, a single line is output, terminated by a newline.
  51If the person's name is known, ``Name $$<user@host>$$'' is printed; otherwise
  52only ``$$<user@host>$$'' is printed.
  53
  54
  55EXAMPLES
  56--------
  57
  58* Consult patch files:
  59+
  60------------
  61$ git contacts feature/*.patch
  62------------
  63
  64* Revision range:
  65+
  66------------
  67$ git contacts R1..R2
  68------------
  69
  70* From a single revision to `HEAD`:
  71+
  72------------
  73$ git contacts origin
  74------------
  75
  76* Helper for `git send-email`:
  77+
  78------------
  79$ git send-email --cc-cmd='git contacts' feature/*.patch
  80------------
  81
  82
  83LIMITATIONS
  84-----------
  85
  86Several conditions controlling a person's significance are currently
  87hard-coded, such as minimum participation level (10%), blame date-limiting (5
  88years), and `-C` level for detecting moved and copied lines (a single `-C`). In
  89the future, these conditions may become configurable.
  90
  91
  92GIT
  93---
  94Part of the linkgit:git[1] suite