Patch anwenden
Patch anwenden im Browser: Unified Diff auf einen Text anwenden wie mit patch, verschobene Hunks finden, rückwärts anwenden und Konflikte sehen.
| Hunk | Erwartet ab Zeile | Angewendet ab Zeile | Status |
|---|
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
So funktioniert das Anwenden
Mit diesem Werkzeug können Sie einen Patch anwenden, ohne die Kommandozeile zu benutzen. Ob Sie einen Unified Diff anwenden, eine Diff-Datei anwenden oder einen Git-Patch übernehmen möchten: Das Werkzeug arbeitet wie das Programm patch. Es erwartet das verbreitete Format Unified Diff, das diff -u, git diff und die meisten Code-Plattformen erzeugen. Ein Patch beginnt mit den Dateinamen nach --- und +++, darauf folgen ein oder mehrere Hunks. Jeder Hunk startet mit einer Kopfzeile wie @@ -12,7 +12,8 @@: Ab Zeile 12 werden 7 alte Zeilen durch 8 neue ersetzt. Zeilen mit Leerzeichen am Anfang sind Kontext, - wird entfernt, + eingefügt.
Wie das Programm patch sucht das Werkzeug jeden Hunk zuerst an der angegebenen Zeile. Hat sich die Datei seit dem Erstellen des Patches verändert, etwa weil weiter oben Zeilen dazugekommen sind, sucht es den Kontext in der Nähe und meldet den Versatz. Passt ein Hunk nirgends, wird er übersprungen und als Konflikt markiert; die übrigen Hunks werden trotzdem angewendet. Erkennt das Werkzeug an der Stelle bereits den neuen Text, weist es darauf hin, dass der Patch vermutlich schon angewendet wurde. Mit „Rückwärts anwenden“ nehmen Sie eine Änderung zurück.
Enthält eine Diff-Datei Änderungen an mehreren Dateien, wählen Sie unter „Datei im Patch“ die passende aus und fügen deren Inhalt als Originaltext ein. Die Option patch -p1 der Kommandozeile, die das Präfix a/ und b/ aus Git-Patches entfernt, ist hier nicht nötig, weil Sie den Inhalt direkt einfügen. Grenzen: Binär-Patches, Umbenennungen und das Format „context diff“ mit *** werden nicht unterstützt. Unterschiede zwischen zwei Fassungen zeigt Texte vergleichen.
Anleitung: Patch anwenden in 4 Schritten
- Den ursprünglichen Dateiinhalt in das Feld „Originaltext“ einfügen.
- Den Patch im Format Unified Diff in das Feld „Patch“ einfügen; bei mehreren Dateien unter „Datei im Patch“ die passende wählen.
- Optional „Rückwärts anwenden“, „Leerraum am Zeilenende ignorieren“ oder „Verschobene Hunks suchen“ einschalten.
- In der Tabelle prüfen, welche Hunks angewendet wurden, und das Ergebnis kopieren.
Typische Anwendungsfälle
- Einen Patch aus einem Pull Request, einer Mailingliste oder einem Bugtracker auf eine einzelne Datei anwenden, ohne Kommandozeile.
- Prüfen, ob ein Patch noch zur aktuellen Version passt und an welchen Stellen er hakt.
- Eine Änderung zurücknehmen, indem der Patch rückwärts angewendet wird.
Häufige Fragen
Was ist ein Hunk?
Ein zusammenhängender Abschnitt eines Patches mit einer @@-Kopfzeile, einigen Zeilen Kontext und den eigentlichen Änderungen. Ein Patch kann viele Hunks enthalten, die unabhängig voneinander angewendet werden.
Warum schlägt ein Hunk fehl?
Der Kontext oder die zu entfernenden Zeilen stehen so nicht im Originaltext, meist weil die Datei inzwischen an dieser Stelle geändert wurde. Prüfen Sie auch Zeilenenden und Tabs: Ein Patch mit Tabs passt nicht auf eine Datei mit Leerzeichen.
Was bedeutet „No newline at end of file“?
Die Zeile \ No newline at end of file zeigt, dass die vorangehende Zeile die letzte der Datei ist und kein Zeilenumbruch folgt. Das Werkzeug berücksichtigt das beim Ergebnis.
Werden Windows-Zeilenenden unterstützt?
Ja. Zeilenenden werden vor dem Vergleich vereinheitlicht, ein Patch mit LF passt also auch auf eine Datei mit CRLF. Das Ergebnis wird mit LF ausgegeben; brauchen Sie CRLF, wandeln Sie es mit dem Werkzeug Zeilenenden umwandeln um.
Wird der Patch auf meine Datei auf der Festplatte angewendet?
Nein. Sie fügen den Inhalt ein und kopieren das Ergebnis zurück. Alles geschieht im Browser, es wird nichts hochgeladen oder gespeichert.
Was ist der Unterschied zwischen git apply und patch?
git apply ist strenger: Es bricht ab, wenn ein Hunk nicht passt, und wendet dann gar nichts an. patch wendet passende Hunks an und schreibt die übrigen in eine .rej-Datei. Dieses Werkzeug verhält sich wie patch und zeigt fehlgeschlagene Hunks in der Tabelle.
Wie erstelle ich selbst einen Patch?
Mit diff -u alt.txt neu.txt > aenderung.patch oder in einem Git-Repository mit git diff > aenderung.patch. Das Werkzeug Texte vergleichen zeigt Unterschiede ebenfalls im vereinheitlichten Format.
Das könnte auch helfen
Cron-Ausdruck erklären
Crontab-Zeilen mit 5 oder 6 Feldern auf Deutsch erklärt, mit den nächsten 10 Ausführungen.
ÖffnenCron-Generator
Zeitplan im Formular wählen und die fertige Crontab-Zeile kopieren.
ÖffnenUnix-Zeitstempel umrechnen
Timestamp in Datum und zurück, Sekunden und Millisekunden erkannt, UTC und Berlin.
ÖffnenUUID-Generator
UUID v4 und v7 erzeugen, bis zu 1.000 auf einmal, und vorhandene UUIDs prüfen.
ÖffnenULID-Generator
Sortierbare IDs in Crockford Base32 erzeugen, dekodieren und in UUID umwandeln.
ÖffnenTexte vergleichen (Diff)
Unterschiede zwischen zwei Texten zeilen-, wort- oder zeichenweise finden.
Öffnen