From: Brigham Campbell <me@brighamcampbell.com>
To: git@vger.kernel.org
Cc: Brigham Campbell <me@brighamcampbell.com>,
Junio C Hamano <gitster@pobox.com>,
Patrick Steinhardt <ps@pks.im>
Subject: [PATCH v6] git-contacts: allow inputting patch via stdin
Date: Fri, 02 Oct 2026 00:50:20 -0600 [thread overview]
Message-ID: <20261002-git-contacts-stdin-v6-1-49878e872d3d@brighamcampbell.com> (raw)
In-Reply-To: <20260914-git-contacts-stdin-v1-1-9ac628e6fd20@brighamcampbell.com>
Make git-contacts accept patch contents via stdin for better
interoperability with other utilities. Read from stdin when the user
passes `-` at least once:
$ git contacts - <patch
Signed-off-by: Brigham Campbell <me@brighamcampbell.com>
---
I verified the documentation changes by rendering html and inspecting
the output in a web browser.
---
Changes in v6:
- Squash documentation and code into a single commit
- Make documentation changes more complete
- Link to v5: https://patch.msgid.link/20260928-git-contacts-stdin-v5-0-e9becaebc47e@brighamcampbell.com
Changes in v5:
- Add a patch documenting stdin support
- Link to v4: https://patch.msgid.link/20260925-git-contacts-stdin-v4-1-9b4e4bcbb91c@brighamcampbell.com
Changes in v4:
- Don't imply that git-contacts processes input in any particular order
- Link to v3: https://patch.msgid.link/20260923-git-contacts-stdin-v3-1-56dd43c64d56@brighamcampbell.com
Changes in v3:
- Make user pass '-' instead of an empty argv and non-TTY stdin
- Link to v2: https://patch.msgid.link/20260915-git-contacts-stdin-v2-1-2005061d907a@brighamcampbell.com
Changes in v2:
- Minor variable cleanup / un-spaghettification
- Include update to usage comment
- Remove Cc trailers from commit message
- Link to v1: https://patch.msgid.link/20260914-git-contacts-stdin-v1-1-9ac628e6fd20@brighamcampbell.com
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Cc: Patrick Steinhardt <ps@pks.im>
---
contrib/contacts/git-contacts | 11 ++++++++---
contrib/contacts/git-contacts.adoc | 14 +++++++++++---
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts
index 85ad732fc0..e4656affb5 100755
--- a/contrib/contacts/git-contacts
+++ b/contrib/contacts/git-contacts
@@ -3,7 +3,7 @@
# List people who might be interested in a patch. Useful as the argument to
# git-send-email --cc-cmd option, and in other situations.
#
-# Usage: git contacts <file | rev-list option> ...
+# Usage: git contacts <file | '-' | rev-list option> ...
use strict;
use warnings;
@@ -162,9 +162,11 @@ if (!@ARGV) {
die "No input revisions or patch files\n";
}
-my (@files, @rev_args);
+my ($read_from_stdin, @files, @rev_args);
for (@ARGV) {
- if (-e) {
+ if ($_ eq '-') {
+ $read_from_stdin = 1;
+ } elsif (-e) {
push @files, $_;
} else {
push @rev_args, $_;
@@ -172,6 +174,9 @@ for (@ARGV) {
}
my %sources;
+if ($read_from_stdin) {
+ scan_patches(\%sources, undef, \*STDIN);
+}
for (@files) {
scan_patch_file(\%sources, $_);
}
diff --git a/contrib/contacts/git-contacts.adoc b/contrib/contacts/git-contacts.adoc
index dd914d1261..ea5dd58826 100644
--- a/contrib/contacts/git-contacts.adoc
+++ b/contrib/contacts/git-contacts.adoc
@@ -9,7 +9,7 @@ git-contacts - List people who might be interested in a set of changes
SYNOPSIS
--------
[verse]
-'git contacts' (<patch>|<range>|<rev>)...
+'git contacts' (<patch>|'-'|<range>|<rev>)...
DESCRIPTION
@@ -23,8 +23,10 @@ which touched the lines of files under consideration.
Input consists of one or more patch files or revision arguments. A revision
argument can be a range or a single `<rev>` which is interpreted as
`<rev>..HEAD`, thus the same revision arguments are accepted as for
-linkgit:git-format-patch[1]. Patch files and revision arguments can be combined
-in the same invocation.
+linkgit:git-format-patch[1]. A single dash `'-'` character in place of a
+`<patch>` tells the command to read patch file(s) from the standard input.
+Patch files, standard input, and revision arguments can be combined in the same
+invocation.
This command can be useful for determining the list of people with whom to
discuss proposed changes, or for finding the list of recipients to Cc: when
@@ -73,6 +75,12 @@ $ git contacts R1..R2
$ git contacts origin
------------
+* Input a patch via stdin:
++
+------------
+$ git contacts - <feature.patch
+------------
+
* Helper for `git send-email`:
+
------------
---
base-commit: c46c1e37724f0478939de636ab8ea5a89086d532
change-id: 20260914-git-contacts-stdin-1e829930e19b
Thanks!
--
Brigham Campbell
https://brighamcampbell.com
next prev parent reply other threads:[~2026-10-02 6:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 2:43 [PATCH] git-contacts: allow inputting patch via stdin Brigham Campbell
2026-09-15 4:29 ` Junio C Hamano
2026-09-16 4:52 ` [PATCH v2] " Brigham Campbell
2026-09-16 14:25 ` Junio C Hamano
2026-09-17 6:56 ` Brigham Campbell
2026-09-24 1:25 ` [PATCH v3] " Brigham Campbell
2026-09-24 4:13 ` Junio C Hamano
2026-09-25 1:51 ` Brigham Campbell
2026-09-25 4:38 ` Junio C Hamano
2026-09-25 6:42 ` [PATCH v4] " Brigham Campbell
2026-09-25 16:09 ` Junio C Hamano
2026-09-29 5:47 ` [PATCH v5 0/2] " Brigham Campbell
2026-09-29 5:47 ` [PATCH v5 1/2] " Brigham Campbell
2026-09-29 19:29 ` Junio C Hamano
2026-10-02 4:44 ` Brigham Campbell
2026-09-29 5:47 ` [PATCH v5 2/2] git-contacts: add stdin functionality to docs Brigham Campbell
2026-09-29 16:30 ` [PATCH v5 0/2] git-contacts: allow inputting patch via stdin Junio C Hamano
2026-10-02 6:50 ` Brigham Campbell [this message]
2026-10-02 14:50 ` [PATCH v6] " Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261002-git-contacts-stdin-v6-1-49878e872d3d@brighamcampbell.com \
--to=me@brighamcampbell.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox