public inbox for git@vger.kernel.org
 help / color / mirror / Atom feed
From: kristofferhaugsbakk@fastmail.com
To: git@vger.kernel.org
Cc: Kristoffer Haugsbakk <code@khaugsbakk.name>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: [PATCH 1/3] doc: patch-id: emphasize multi-patch processing
Date: Sat,  7 Feb 2026 16:05:26 +0100	[thread overview]
Message-ID: <multi-patch_processing.276@msgid.xyz> (raw)
In-Reply-To: <CV_doc_patch-id_4.275@msgid.xyz>

From: Kristoffer Haugsbakk <code@khaugsbakk.name>

Emphasize that you can pass multiple patches or diffs to this command.

git-patch-id(1) is an efficient pID–commit mapper, able to map
thousands of commits in seconds. But discussions on the command
seem to typically[1] use the standard loop-over-rev-list-and-
shell-out pattern:

    for commit in rev-list:
        prepare a diff from commit | git patch-id

This is unnecessary; we can bulk-process the patches:

    git rev-list --no-merges <ref> |
         git diff-tree --patch --stdin |
         git patch-id --stable

The first version (translated to shell) takes a little over nine
minutes for a commit history of about 78K commits.[2] The other one,
by contrast, takes slightly less than a minute.

Also drop “the” from “standard input”.

[1]: https://stackoverflow.com/a/19758159
† 2: This is `master` of this repository on 2025-10-02

Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
---
 Documentation/git-patch-id.adoc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/Documentation/git-patch-id.adoc b/Documentation/git-patch-id.adoc
index 013e1a61906..e95391cd255 100644
--- a/Documentation/git-patch-id.adoc
+++ b/Documentation/git-patch-id.adoc
@@ -3,7 +3,7 @@ git-patch-id(1)
 
 NAME
 ----
-git-patch-id - Compute unique ID for a patch
+git-patch-id - Compute unique IDs for patches
 
 SYNOPSIS
 --------
@@ -12,7 +12,7 @@ git patch-id [--stable | --unstable | --verbatim]
 
 DESCRIPTION
 -----------
-Read a patch from the standard input and compute the patch ID for it.
+Read patches from standard input and compute the patch IDs.
 
 A "patch ID" is nothing but a sum of SHA-1 of the file diffs associated with a
 patch, with line numbers ignored.  As such, it's "reasonably stable", but at
@@ -25,7 +25,8 @@ When dealing with `git diff-tree --patch` output, it takes advantage of
 the fact that the patch is prefixed with the object name of the
 commit, and outputs two 40-byte hexadecimal strings.  The first
 string is the patch ID, and the second string is the commit ID.
-This can be used to make a mapping from patch ID to commit ID.
+This can be used to make a mapping from patch ID to commit ID for a
+set or range of commits.
 
 OPTIONS
 -------
-- 
2.53.0.26.g2afa8602a26


  reply	other threads:[~2026-02-07 15:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-07 15:05 [PATCH 0/3] doc: patch-id: explain how to map efficiently kristofferhaugsbakk
2026-02-07 15:05 ` kristofferhaugsbakk [this message]
2026-02-07 15:05 ` [PATCH 2/3] doc: patch-id: add script example kristofferhaugsbakk
2026-02-08  2:34   ` D. Ben Knoble
2026-02-08 17:23     ` Kristoffer Haugsbakk
2026-02-07 15:05 ` [PATCH 3/3] doc: patch-id: see also git-cherry(1) kristofferhaugsbakk
2026-02-08  2:34 ` [PATCH 0/3] doc: patch-id: explain how to map efficiently D. Ben Knoble
2026-02-14 11:55 ` [PATCH v2 " kristofferhaugsbakk
2026-02-14 11:55   ` [PATCH v2 1/3] doc: patch-id: emphasize multi-patch processing kristofferhaugsbakk
2026-02-14 11:55   ` [PATCH v2 2/3] doc: patch-id: add script example kristofferhaugsbakk
2026-02-14 11:55   ` [PATCH v2 3/3] doc: patch-id: see also git-cherry(1) kristofferhaugsbakk
2026-02-14 20:00   ` [PATCH v2 0/3] doc: patch-id: explain how to map efficiently Ben Knoble
2026-02-20 22:31   ` Junio C Hamano
2026-02-21  2:38     ` Ben Knoble
2026-02-23 18:04       ` Kristoffer Haugsbakk

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=multi-patch_processing.276@msgid.xyz \
    --to=kristofferhaugsbakk@fastmail.com \
    --cc=code@khaugsbakk.name \
    --cc=git@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /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