Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

git-patch-id(1) [osx man page]

GIT-PATCH-ID(1) 						    Git Manual							   GIT-PATCH-ID(1)

NAME
git-patch-id - Compute unique ID for a patch SYNOPSIS
git patch-id [--stable | --unstable] DESCRIPTION
Read a patch from the standard input and compute the patch ID for it. A "patch ID" is nothing but a sum of SHA-1 of the file diffs associated with a patch, with whitespace and line numbers ignored. As such, it's "reasonably stable", but at the same time also reasonably unique, i.e., two patches that have the same "patch ID" are almost guaranteed to be the same thing. IOW, you can use this thing to look for likely duplicate commits. When dealing with git diff-tree 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. OPTIONS
--stable Use a "stable" sum of hashes as the patch ID. With this option: o Reordering file diffs that make up a patch does not affect the ID. In particular, two patches produced by comparing the same two trees with two different settings for "-O<orderfile>" result in the same patch ID signature, thereby allowing the computed result to be used as a key to index some meta-information about the change between the two trees; o Result is different from the value produced by git 1.9 and older or produced when an "unstable" hash (see --unstable below) is configured - even when used on a diff output taken without any use of "-O<orderfile>", thereby making existing databases storing such "unstable" or historical patch-ids unusable. This is the default if patchid.stable is set to true. --unstable Use an "unstable" hash as the patch ID. With this option, the result produced is compatible with the patch-id value produced by git 1.9 and older. Users with pre-existing databases storing patch-ids produced by git 1.9 and older (who do not deal with reordered patches) may want to use this option. This is the default. GIT
Part of the git(1) suite Git 2.17.1 10/05/2018 GIT-PATCH-ID(1)

Check Out this Related Man Page

GIT-MAILINFO(1) 						    Git Manual							   GIT-MAILINFO(1)

NAME
git-mailinfo - Extracts patch and authorship from a single e-mail message SYNOPSIS
git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] <msg> <patch> DESCRIPTION
Reads a single e-mail message from the standard input, and writes the commit log message in <msg> file, and the patches in <patch> file. The author name, e-mail and e-mail subject are written out to the standard output to be used by git am to create a commit. It is usually not necessary to use this command directly. See git-am(1) instead. OPTIONS
-k Usually the program removes email cruft from the Subject: header line to extract the title line for the commit log message. This option prevents this munging, and is most useful when used to read back git format-patch -k output. Specifically, the following are removed until none of them remain: o Leading and trailing whitespace. o Leading Re:, re:, and :. o Leading bracketed strings (between [ and ], usually [PATCH]). Finally, runs of whitespace are normalized to a single ASCII space character. -b When -k is not in effect, all leading strings bracketed with [ and ] pairs are stripped. This option limits the stripping to only the pairs whose bracketed string contains the word "PATCH". -u The commit log message, author name and author email are taken from the e-mail, and after minimally decoding MIME transfer encoding, re-coded in the charset specified by i18n.commitencoding (defaulting to UTF-8) by transliterating them. This used to be optional but now it is the default. Note that the patch is always used as-is without charset conversion, even with this flag. --encoding=<encoding> Similar to -u. But when re-coding, the charset specified here is used instead of the one specified by i18n.commitencoding or UTF-8. -n Disable all charset re-coding of the metadata. --scissors Remove everything in body before a scissors line. A line that mainly consists of scissors (either ">8" or "8<") and perforation (dash "-") marks is called a scissors line, and is used to request the reader to cut the message at that line. If such a line appears in the body of the message before the patch, everything before it (including the scissors line itself) is ignored when this option is used. This is useful if you want to begin your message in a discussion thread with comments and suggestions on the message you are responding to, and to conclude it with a patch submission, separating the discussion and the beginning of the proposed commit log message with a scissors line. This can enabled by default with the configuration option mailinfo.scissors. --no-scissors Ignore scissors lines. Useful for overriding mailinfo.scissors settings. <msg> The commit log message extracted from e-mail, usually except the title line which comes from e-mail Subject. <patch> The patch extracted from e-mail. GIT
Part of the git(1) suite Git 1.8.5.3 01/14/2014 GIT-MAILINFO(1)
Man Page