| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-patch-id(1) |
| 2 | =============== |
| 3 | |
| 4 | NAME |
| 5 | ---- |
| Junio C Hamano | 7c73c66 | 2007-01-19 00:37:50 | [diff] [blame] | 6 | git-patch-id - Compute unique ID for a patch |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 7 | |
| 8 | SYNOPSIS |
| 9 | -------- |
| Junio C Hamano | 15567bc | 2011-07-23 00:51:59 | [diff] [blame] | 10 | [verse] |
| Junio C Hamano | daf0aae | 2015-10-26 23:14:30 | [diff] [blame] | 11 | 'git patch-id' [--stable | --unstable] |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 12 | |
| 13 | DESCRIPTION |
| 14 | ----------- |
| Junio C Hamano | daf0aae | 2015-10-26 23:14:30 | [diff] [blame] | 15 | Read a patch from the standard input and compute the patch ID for it. |
| 16 | |
| Junio C Hamano | c8c398a | 2014-06-16 21:14:05 | [diff] [blame] | 17 | A "patch ID" is nothing but a sum of SHA-1 of the file diffs associated with a |
| 18 | patch, with whitespace and line numbers ignored. As such, it's "reasonably |
| 19 | stable", but at the same time also reasonably unique, i.e., two patches that |
| 20 | have the same "patch ID" are almost guaranteed to be the same thing. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 21 | |
| 22 | IOW, you can use this thing to look for likely duplicate commits. |
| 23 | |
| Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 24 | When dealing with 'git diff-tree' output, it takes advantage of |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 25 | the fact that the patch is prefixed with the object name of the |
| Junio C Hamano | 1de7572 | 2009-03-26 08:39:38 | [diff] [blame] | 26 | commit, and outputs two 40-byte hexadecimal strings. The first |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 27 | string is the patch ID, and the second string is the commit ID. |
| 28 | This can be used to make a mapping from patch ID to commit ID. |
| 29 | |
| 30 | OPTIONS |
| 31 | ------- |
| Junio C Hamano | c8c398a | 2014-06-16 21:14:05 | [diff] [blame] | 32 | |
| 33 | --stable:: |
| 34 | Use a "stable" sum of hashes as the patch ID. With this option: |
| 35 | - Reordering file diffs that make up a patch does not affect the ID. |
| 36 | In particular, two patches produced by comparing the same two trees |
| 37 | with two different settings for "-O<orderfile>" result in the same |
| 38 | patch ID signature, thereby allowing the computed result to be used |
| 39 | as a key to index some meta-information about the change between |
| 40 | the two trees; |
| 41 | |
| 42 | - Result is different from the value produced by git 1.9 and older |
| 43 | or produced when an "unstable" hash (see --unstable below) is |
| 44 | configured - even when used on a diff output taken without any use |
| 45 | of "-O<orderfile>", thereby making existing databases storing such |
| 46 | "unstable" or historical patch-ids unusable. |
| 47 | |
| 48 | This is the default if patchid.stable is set to true. |
| 49 | |
| 50 | --unstable:: |
| 51 | Use an "unstable" hash as the patch ID. With this option, |
| 52 | the result produced is compatible with the patch-id value produced |
| 53 | by git 1.9 and older. Users with pre-existing databases storing |
| 54 | patch-ids produced by git 1.9 and older (who do not deal with reordered |
| 55 | patches) may want to use this option. |
| 56 | |
| 57 | This is the default. |
| 58 | |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 59 | GIT |
| 60 | --- |
| Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 61 | Part of the linkgit:git[1] suite |