Was bedeuten diese Anweisungen im Klartext?

2359

Ich weiß, dass es für das Linux-Programmpatch ist, aber wenn ich versuche, es zu verwenden, erhalte ich die folgende Fehlermeldung:

Fehlender Header für einheitlichen Diff in Zeile 4 des Patches

fehlerhafter Patch in Zeile 5: Beenden

Stattdessen möchte ich den Mittelsmann einfach ausschneiden und von Hand bearbeiten, aber ich weiß nicht, was eines der Symbole bedeutet.

a/com.ibm.celldt.simulator.profile.default_3.1.0.200809010950/simulator_init.tcl  + b/com.ibm.celldt.simulator.profile.default_3.1.0.200809010950/simulator_init.tcl @@ -701,9 +701,9 @@ proc CellDT_ShutdownComplete { args } { quit }  -mysim trigger set console "The system is going down for system halt NOW!" CellDT_ShutdownNotified -mysim trigger set console "INIT: Switching to runlevel: 0" CellDT_ShutdownStarted -mysim trigger set console "INIT: no more processes left in this runlevel" CellDT_ShutdownComplete +mysim trigger set console "init: rcS main" CellDT_ShutdownNotified +mysim trigger set console "Sending all processes the TERM signal" CellDT_ShutdownStarted +mysim trigger set console "md: stopping all md devices." CellDT_ShutdownComplete  proc writeConsole { t } { mysim console create console_id in string $t @@ -740,8 +740,8 @@ proc CellDT_BootNearlyReady { args } { }  mysim trigger set console "Starting Linux" CellDT_BootedBios -mysim trigger set console "Welcome to Fedora Core" CellDT_BootedLinux -mysim trigger set console "INIT: Entering runlevel: 2" CellDT_BootNearlyReady +mysim trigger set console "Welcome to Fedora" CellDT_BootedLinux +mysim trigger set console "Starting login process" CellDT_BootNearlyReady  # # CONFIGURATION: 
0

4 Antworten auf die Frage

4
DaveParillo

Ihre Ausgabe zeigt an, dass das Patch-Programm die Zeile, die mit 'quit' beginnt, nicht richtig interpretiert. Jede hinzugefügte Zeile muss mit '+' beginnen

Woher hast du diese Datei? Diese Tools übernehmen "Unix-artige" Zeilenumbrüche. Das bedeutet, dass alle Dateien, die Sie abändern und patchen, nur LF-Zeilenumbrüche haben dürfen und nicht die Windows / DOS-Standard-CRLF-Zeilenumbrüche. Versuchen:

dos2unix -d filename 
2
luapyad

Einheitliches Diff-Format : Im Grunde bedeutet '-' die entfernte Zeile, '+' die hinzugefügte Zeile. Sie können den Patch also manuell anwenden, wenn Sie möchten. Aber das Beste wäre, das zugrunde liegende Problem zu lösen. Ist das Dateisegment, das Sie bereitstellen, die vollständige Datei? Wenn dies der Fall ist, weist dies darauf hin, dass die Informationen zum Diff-Header fehlerhaft sind / fehlen und Sie müssen zu dem Prozess "source / tools /" zurückkehren, der diesen Patch erstellt hat.

Wie vorgeschlagen, scheint die Datei beschädigt zu sein, da der "Originaldatei" (a / com ...) "---" und der "neuen Datei" (b / com ...) mit "++" vorangestellt werden sollte + `Marker. (Sehen Sie ein Beispiel über den oben angegebenen Link.) Jawa vor 14 Jahren 0
0
CarlF

Ein häufiges Problem ist das Anwenden eines Patches für Version x.yy.zzz auf Version x.yy.zza. Das heißt, Patch-Dateien sind sehr spezifisch für bestimmte Versionen der Quelle. Ich würde dringend vorschlagen, dass Sie das eigentliche Programm, das Sie patchen, und die genaue Quelle des Patches posten.

0
alex

Es sieht für mich so aus, als hätte Ihr Patch die beiden Hauptzeichen ' +' und ' -', aber es fehlt die Kontextmarkierung ' ' (Leerzeichen).

Wahrscheinlich ist es passiert, dass Sie von einer Website aus kopiert und eingefügt haben. Der Editor, mit dem Sie den Text ausgefüllt und in einer Datei gespeichert haben, löschte die führenden Leerzeichen. Das ist irgendwie kaputt, kann aber behoben werden.

Ich persönlich bevorzuge die save (link) asMethode, da in 99,95% der Fälle manuelle Nachbearbeitungsarbeiten vermieden werden.