Разные заметки

четверг, 20 мая 2010 г.

Использование комманд diff и patch

$diff file1 /new/file2

77d76 - удалит строку 77 в файле file1 чтобы получить аналог file2

186c186
< { prn2f("\tDump ERROR!\n");}
---
> { prn2f("Dump ERROR!\n");}

замена 186 строки file1 (< { prn2f("\tDump ERROR!\n");})
на 186 строку file2 (> { prn2f("Dump ERROR!\n");})

Когда используется "c", номера строк слева - это строки в оригинальном файле, которые надо заменить строками, находящимися в патче, а номера строк справа - это строки, которые должны быть в пропатченном файле.

Когда используется "a", номер слева может быть только номером одной строки, который показывает, где надо добавить строку в пропатченном файле, а номера строк справа - это строки, которые должны быть в пропатченном файле.

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


Знак "<" означает, что патч должен удалить символы после этого знака, а знак ">" означает, что символы после этого знака надо добавить. Когда надо заменить строки ("c" между номерами строк), вы увидите оба знака: и "<", и ">". Когда надо добавить строку ("a" между номерами строк), вы увидите только знак ">", а когда надо удалить строку ("d" между номерами строк), вы увидите только знак "<". Строка "\ No newline at end of file" появилась из-за того, что я не не нажал enter после того как набрал слова. Считается хорошим тоном заканчивать текстовый файл пустой строкой. Некоторым программам она необходима для работы.


$ diff file1 /new/file2 > patch.now

И затем применить патч:
$ patch file1 -i patch.now -o file1.patching



Если все прошло хорошо, должен получиться файл, идентичный обновленному. Вы можете убедиться в этом, используя команду diff с опцией "-s":
 $ diff -s file1.patching /new/file2 
Файлы file1.patching и /new/file2 идентичны 

Оригинал http://www.ylsoftware.com/news/243

Комментариев нет:

Отправить комментарий