Patch-Dateien werden durch Diff-Anweisungen (linuxdiff, svndiff, gitdiff, gitformat-patch) generiert.
Lassen Sie uns zunächst den Diff-Befehl und seine allgemeinen Parameter vorstellen:
Unterschied:
Die Funktion von Diff besteht darin, die Unterschiede zwischen zwei Dateien zu vergleichen und sie dann aufzuzeichnen. Dies ist der sogenannte Diff-Patch. Satzformat: diff [Option] Quelldatei (Ordner) Zieldatei (Ordner) Das Linux-Betriebssystem ist gut. Es besteht darin, die Quelldatei (Ordner) zu patchen. Der Begriff lautet „Upgrade“. Nachfolgend werden die drei am häufigsten verwendeten Optionen vorgestellt: -r ist eine rekursive Option. Wenn Sie diese Option
linux auf patchsetzen, vergleicht diff alle entsprechenden Dateien in den Quellcodeverzeichnissen zweier verschiedener Versionen, einschließlich der Unterverzeichnisdateien. Die Option -N stellt sicher, dass die Patchdatei die Situation, in der die Datei erstellt oder gelöscht wurde, korrekt verarbeitet.
Die Option-u erstellt Patchdateien in einem einheitlichen Format, das kompakter als das Standardformat ist.
2、Patch
————————————————————————
NAME
Patch-Applyadifffiletoanoriginal
SYNOPSIS
patch[Optionen][Originaldatei[Patchdatei]]
aber normalerweise nur
Patch-Pnum
————————————————————————
Einfach ausgedrückt besteht Patch darin, den von diff erstellten Patch zu verwenden, um die Quelldatei (Ordner) und die Zieldatei (Ordner) zu konvertieren. Das bedeutet, dass Sie eine Quelldatei (Ordner) -> Zieldatei (Ordner) oder eine Zieldatei (Ordner) -> Quelldatei (Ordner) haben können. Hier sind einige der am häufigsten verwendeten Optionen:
Die Option-p0 besteht darin, die Zieldatei (Ordner) aus dem aktuellen Verzeichnis zu finden
Die Option-p1 ignoriert das Verzeichnis der ersten Ebene und beginnt mit der Suche im aktuellen Verzeichnis.
Ähnliche Option -p2 sollte das Verzeichnis der zweiten Ebene ignorieren;
......***************************************************** ***** *************
Hier ist ein Beispiel:
---old/modules/pcitableMonSep2711:03:561999
+++new/modules/pcitableTueDec1920:05:412000
Wenn Sie den Parameter -p0 verwenden, bedeutet dies, dass Sie im aktuellen Verzeichnis einen Ordner namens old finden und unter den Modulen nach der pcitable-Datei suchen, um den Patch-Vorgang auszuführen.
Wenn Sie den Parameter -p1 verwenden, bedeutet dies, dass Sie das Verzeichnis der ersten Ebene (dh unabhängig vom alten) ignorieren, im aktuellen Verzeichnis nach dem Modulordner suchen und darunter nach pcitable suchen. Voraussetzung hierfür ist, dass das aktuelle Verzeichnis das Verzeichnis sein muss, in dem sich die Module befinden. Die Diff-Patch-Datei kann sich an einem beliebigen Ort befinden, solange der Pfad zur Diff-Patch-Datei angegeben wird. Tatsächlich können Sie relative Pfade oder absolute Pfade verwenden. Normalerweise verwende ich jedoch relative Pfade.
***************************************************** ***** *************
Die Option-E gibt an, dass eine leere Datei gelöscht wird, wenn sie gefunden wird
Die Option-R gibt an, dass die „neuen“ Dateien und die „alten“ Dateien in der Patch-Datei nun ausgetauscht werden sollen (eigentlich geht es darum, die neue Version zu patchen und zur alten Version zu machen)
Struktur der Patchdatei
Patchkopf
Der Patch-Header besteht aus zwei Zeilen, die mit ---/+++ beginnen und die zu patchenden Dateien darstellen. Der Anfang von --- repräsentiert die alte Datei und der Anfang von +++ repräsentiert die neue Datei.
Mehrere Patches in einer Patchdatei
Eine Patchdatei kann viele Abschnitte enthalten, die mit ---/+++ beginnen, und jeder Abschnitt wird zum Anwenden eines Patches verwendet. Eine Patchdatei kann also viele Patches enthalten.
Blöcke
Blöcke sind die Stellen, die im Patch geändert werden müssen. Normalerweise beginnt und endet es mit etwas, das nicht geändert werden muss. Sie dienen lediglich dazu, den zu ändernden Standort anzugeben. Sie beginnen normalerweise mit @@ und enden mit dem Anfang eines anderen Blocks oder eines neuen Patch-Headers.
Einrückung blockieren
Der-Block wird um eine Spalte eingerückt und diese Spalte wird verwendet, um anzugeben, ob die Zeile verkleinert oder gelöscht werden soll.
Erste Blockspalte
Das Zeichen+ zeigt an, dass diese Zeile hinzugefügt werden muss.
Das-Zeichen zeigt an, dass diese Zeile gelöscht werden soll.
Kein Minuszeichen oder Negativzeichen bedeutet, dass es sich lediglich um eine Referenz handelt und nicht geändert werden muss.
Verwendung:
patch-p0 patch-p1 Das obige ist der detaillierte Inhalt vonVertiefendes Verständnis von Patch-Dateien: Generierung von Diff-Anweisungen und Analyse gemeinsamer Parameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!