Что означают эти инструкции на простом английском языке?

2245

Я знаю, что это для патча программы Linux, но если я пытаюсь использовать его, я получаю следующую ошибку:

отсутствует заголовок для унифицированного diff в строке 4 патча

неправильно сформированное пятно в строке 5: выход

Вместо этого я хотел бы просто вырезать посредника и отредактировать его вручную, но я не знаю, что означает какой-либо из символов.

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 ответа на вопрос

4
DaveParillo

Ваш вывод указывает, что программа исправления неправильно интерпретирует строку, начинающуюся с 'quit'. Каждая добавленная строка должна начинаться с «+»

Где вы взяли этот файл? Эти инструменты будут работать с символами новой строки в стиле Unix. Это означает, что все файлы, которые вы просматриваете и исправляете, должны иметь только новые строки LF, а не стандартные строки CRLF для Windows / DOS. Пытаться:

dos2unix -d filename 
2
luapyad

Унифицированный формат diff : в основном «-» означает удаленную строку, «+» означает добавленную строку. Так что вы можете вручную применить патч, если хотите. Но лучше всего было бы решить основную проблему. Является ли сегмент файла, который вы предоставляете полный файл? Если это так - это указывает на то, что информация заголовка diff повреждена / отсутствует, и вам нужно вернуться к источнику / инструментам / процессу, который создал этот патч.

Как и предполагалось, файл кажется поврежденным, так как «исходному файлу» (a / com ...) должен предшествовать `---`, а «новому файлу» (b / com ...) - `++ + маркеры. (См. Пример по приведенной выше ссылке.) Jawa 14 лет назад 0
0
CarlF

Довольно распространенной проблемой является применение патча для версии x.yy.zzz к версии x.yy.zza. То есть файлы исправлений очень специфичны для определенных версий исходного кода. Я настоятельно рекомендую вам опубликовать реальную программу, которую вы исправляете, и точный источник патча.

0
alex

It looks to me like your patch has the two main characters, ‘+’ and ‘-’, but it is missing the context marker ‘’ (space).

What probably happened is that you did a copy and paste from some website and the editor you used to fill in your text and save it into a file dropped the leading spaces. That's sort of broken, but can be fixed.

I personally prefer the save (link) as method, as it avoids manual post-processing work 99.95% of the time.

Похожие вопросы