Я знаю, что это для патча программы 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:

4 ответа4

4

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

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

dos2unix -d filename
2

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

0

Мне кажется, что в вашем патче есть два главных символа: « + » и « - », но в нем отсутствует маркер контекста. ' (пространство).

Вероятно, произошло то, что вы скопировали и вставили с какого-то веб-сайта, и редактор, который вы использовали для заполнения текста и сохранения его в файл, отбросил первые пробелы. Это вроде как сломано, но можно исправить.

Я лично предпочитаю save (link) as метод, так как он избегает ручной постобработки в 99,95% случаев.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .