Hi
Nachdem du diesen Artikel gelesen hast, kannst du Patches/Diffs anwenden und mit auftretenden Fehlern umgehen.
Nehmen wir an, dass der Patch in der Datei fix-bug.patch ist (die Erweiterung hat keinen Einfluß). Das Verzeichnis software-1.0 enthält die Dateien, die gepatcht werden sollen. Ein Patch/Diff wird dann wiefolgt angewandt:
- Erstelle ein Backup. Auf Linux kannst du das folgende Kommando verwenden:
markus@ubuntu:~$ cp -a software-1.0 software-1.0.before-patch - Rufe patch (für Windows: patch.exe) wiefolgt auf:
markus@ubuntu:~$ patch -Np1 -d software-1.0 < fix-bug.patch
Vorsicht: nach patch kommt minus N p Eins …, nicht minus N p kleines L!
Falls das Ergebnis in etwa so aussieht:
markus@ubuntu:~$ patch -Np1 -d software-1.0 < fix-bug.patch patching file bar.h patching file quux.c patching file foo.txt markus@ubuntu:~$
dann hat es funktioniert und der Patch wurde sauber angewandt.
Falls du andere Ausgaben erhalten hast, können das Warnungen sein, oder Fehlermeldungen. In jedem Fall ist es möglich, dass der Patch nicht richtig oder nur teilweise angewandt wurde. Um sicher zu gehen, stell am besten das Backup wieder her. Danach kümmern wir uns um Warnungen und Fehlermeldungen. Um das Backup unter Linux wieder herzustellen:
markus@ubuntu:~$ rm -rf software-1.0 markus@ubuntu:~$ cp -a software-1.0.before-patch software-1.0
Fehler und wie man sie beseitigt
Hier ist eine Liste von Fehlermeldungen die erscheinen können. Jede Fehlermeldung ist ein Link zu einem Absatz, der beschreibt, wie man den Fehler beseitigt.
-
can't find file to patch at input line nnn. File to patch:
-
No file to patch. Skipping patch. n out of n hunks ignored.
-
Hunk #n FAILED at nnn. n out of n hunks FAILED -- saving rejects to file file.rej
-
Hunk #n succeeded at nnn (offset n lines).
-
Hunk #n succeeded at nnn with fuzz n.
-
malformed patch at line nnn