English ▾ Themen ▾ Neueste Version ▾ git-patch-id zuletzt aktualisiert in 2.52.0

NAME

git-patch-id - Eindeutige ID für einen Patch berechnen

SYNOPSIS

git patch-id [--stable | --unstable | --verbatim]

BESCHREIBUNG

Liest einen Patch von der Standardeingabe und berechnet die Patch-ID dafür.

Eine "Patch-ID" ist nichts anderes als die Summe der SHA-1-Hashes der Dateidiffs, die zu einem Patch gehören, wobei Zeilennummern ignoriert werden. Als solche ist sie "vernünftigerweise stabil", aber gleichzeitig auch vernünftigerweise eindeutig, d. h. zwei Patches mit derselben "Patch-ID" sind fast garantiert dasselbe.

Der Hauptanwendungsfall für diesen Befehl ist die Suche nach wahrscheinlichen Duplikat-Commits.

Wenn mit der Ausgabe von git diff-tree gearbeitet wird, nutzt dieser Befehl die Tatsache aus, dass der Patch mit dem Objekt-Namen des Commits vorangestellt ist, und gibt zwei 40-stellige Hexadezimalstrings aus. Der erste String ist die Patch-ID und der zweite String ist die Commit-ID. Dies kann verwendet werden, um eine Zuordnung von Patch-ID zu Commit-ID zu erstellen.

OPTIONEN

--verbatim

Berechnet die Patch-ID der Eingabe, wie sie gegeben ist, ohne Leerraum zu entfernen.

Dies ist der Standardwert, wenn patchid.verbatim auf true gesetzt ist.

--stable

Verwendet eine "stabile" Summe von Hashes als Patch-ID. Mit dieser Option

  • beeinflusst die Neuordnung von Dateidiffs, die einen Patch bilden, die ID nicht. Insbesondere ergeben zwei Patches, die durch den Vergleich derselben beiden Bäume mit zwei verschiedenen Einstellungen für -O<orderfile> erzeugt wurden, dieselbe Patch-ID-Signatur, wodurch das berechnete Ergebnis als Schlüssel zum Indizieren von Metainformationen über die Änderung zwischen den beiden Bäumen verwendet werden kann;

  • Das Ergebnis unterscheidet sich von dem Wert, der von git 1.9 und älter erzeugt wurde, oder von dem, der bei einem "instabilen" Hash (siehe --unstable unten) erzeugt wird – selbst wenn er auf eine Diff-Ausgabe angewendet wird, die ohne die Verwendung von -O<orderfile> erstellt wurde. Dadurch werden bestehende Datenbanken, die solche "instabilen" oder historischen Patch-IDs speichern, unbrauchbar.

  • Jeglicher Leerraum innerhalb des Patches wird ignoriert und beeinflusst die ID nicht.

Dies ist der Standardwert, wenn patchid.stable auf true gesetzt ist.

--unstable

Verwendet einen "instabilen" Hash als Patch-ID. Mit dieser Option ist das Ergebnis mit dem von git 1.9 und älter erzeugten Patch-ID-Wert kompatibel und Leerraum wird ignoriert. Benutzer mit vorbestehenden Datenbanken, die Patch-IDs von git 1.9 und älter speichern (die nicht mit neu sortierten Patches umgehen), möchten diese Option möglicherweise verwenden.

Dies ist der Standardwert.

GIT

Teil der git[1] Suite