Skip to content

Commit acb01a3

Browse files
sunshinecogitster
authored andcommitted
contrib: contacts: add documentation
Assuming that git-contacts may some day be promoted to a core git command, the documentation is written and formatted as if it already belongs in Documentation/ even though it presently resides in contrib/contacts. Signed-off-by: Eric Sunshine <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 7c6d6ff commit acb01a3

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

contrib/contacts/git-contacts.txt

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

0 commit comments

Comments
 (0)