2010-10-31 5 views
5

В настоящее время я играю с разбором файлов diff и до сих пор не нашел надежной документации по файлам diff.Что такое синтаксис файла Diff

Меня особенно интересуют спецификации. Например. Я не очень понимаю, строки, которые выглядят следующим образом (в начале каждого измененного блока кода):

@@ -296,7 +296,8 @@ 

Я знаю, что они должны делать с номерами строк и сколько строк изменились, но я не был Пока не удалось выяснить детали.

Каков синтаксис выходных файлов diff (по крайней мере, основные части)?

ответ

6

Отъезд documentation для GNU diffutils. Там вы найдете этот раздел:

Далее идут один или несколько разметки; каждый кусок показывает одну область, где файлы отличаются. скряга унифицированный формат выглядит следующим образом:

@@ from-file-line-numbers to-file-line-numbers @@ 
    line-from-either-file 
    line-from-either-file... 

Если ломоть содержит только одну строку, только его номер появляется начальная строка. В противном случае его номера строк выглядят как «start, count». Предполагается, что пустой кусок запускается на линии, которая следует за ломом.

Если кусок и его контекст содержат две или более строки, номера строк выглядят как «start, count». В противном случае появляется только номер его конечной линии. Предполагается, что пустой кусок заканчивается на линии, которая предшествует кушетке.

Линии, общие для обоих файлов, начинаются с символа пробела. Строки, которые фактически отличаются между двумя файлами, имеют один из следующих индикаторных символов в левой колонке печати:

'+' Здесь была добавлена ​​строка для первого файла.

'-' Здесь была удалена строка из первого файла.

Смежные вопросы