git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] doc: patch-id: emphasize multi-patch processing

From
Kkristofferhaugsbakk@fastmail.com <kristofferhaugsbakk@fastmail.com>
Date
Feb 7, 2026, 15:05 UTC
Message-ID
<multi-patch_processing.276@msgid.xyz>
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
Previous: kristofferhaugsbakk@fastmail.comNext: kristofferhaugsbakk@fastmail.com
Message 2 of 15 in “doc: patch-id: explain how to map efficiently”
  1. 0/3 doc: patch-id: explain how to map efficientlykristofferhaugsbakk@fastmail.com, Feb 7, 2026
  2. 1/3 doc: patch-id: emphasize multi-patch processingkristofferhaugsbakk@fastmail.com, Feb 7, 2026
  3. 2/3 doc: patch-id: add script examplekristofferhaugsbakk@fastmail.com, Feb 7, 2026
  4. D. Ben KnobleFeb 8, 2026
  5. Kristoffer HaugsbakkFeb 8, 2026
  6. 3/3 doc: patch-id: see also git-cherry(1)kristofferhaugsbakk@fastmail.com, Feb 7, 2026
  7. D. Ben KnobleFeb 8, 2026
  8. 0/3 doc: patch-id: explain how to map efficientlykristofferhaugsbakk@fastmail.com, Feb 14, 2026
  9. 1/3 doc: patch-id: emphasize multi-patch processingkristofferhaugsbakk@fastmail.com, Feb 14, 2026
  10. 2/3 doc: patch-id: add script examplekristofferhaugsbakk@fastmail.com, Feb 14, 2026
  11. 3/3 doc: patch-id: see also git-cherry(1)kristofferhaugsbakk@fastmail.com, Feb 14, 2026
  12. Ben KnobleFeb 14, 2026
  13. Junio C HamanoFeb 20, 2026
  14. Ben KnobleFeb 21, 2026
  15. Kristoffer HaugsbakkFeb 23, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.