Как читать бзр diff

оригинал:

if __name__ == "__main__":
    myparams = {"server":"mpilgrim", \
                    "database":"master", \
                    "uid":"sa", \
                    "pwd":"secret" \
                    }

вырезка bzr diff:

 if __name__ == "__main__":
     myparams = {"server":"mpilgrim", \
@@ -15,4 +22,6 @@
                     "pwd":"secret" \
                     }

Что означает «@@ -15,4 +22,6 @@» часть bzr diff и почему он перезаписывает две строки?

"database":"master", \
"uid":"sa", \
3
задан 13 November 2011 в 23:13

1 ответ

Вы предоставили выборки от разности контекста, которая показывает обе строки, которые являются тем же и в файлах и в строках, которые изменяются. Однако выборки, которые Вы выбрали, на самом деле не показывают измененных строк. (С ними предшествовали бы - или + символы, в зависимости от того, удаляются ли они или добавляются.)

@@ -15,4 +22,6 @@ средства это 4 строки, запускающиеся со строки 15 в старом файле, изменены (или не изменены, но показываются контекстом), и соответствовать 6 строки, запускающиеся со строки 22 в новом файле. (Самое простое и в подавляющем большинстве наиболее распространенный способ к этому для появления состоит в том, что количество строк, добавленных в новом файле, превышает количество строк, удаленных в новом файле на 7, такой это, что запустилось на строке 15 в старом файле запускается на строке 22 в новом файле, до приложения изменений, собирающихся быть указанным.)

Так как это - разность контекста, она обеспечивает некоторые строки для контекста, которые не указывают изменения. Это полезно, чтобы позволить людям, редактирующим файлы (разработчики/специалисты по обслуживанию, когда это - исходный код, как в этом случае) знать, что продолжается путем просматривания различного. Но это имеет другую полезную цель позволить, во многих случаях, применять разность создало против одной версии файла против другой версии того же файла, при условии, что это не изменяет те же самые строки, которые были уже изменены (т.е. которые были изменены после того, как разность была создана, но прежде чем это будет применено).

Следующие строки, по-видимому, присутствуют, как контекст, в разности, потому что было изменение незадолго до них (таким образом, они - контекст, обеспеченный после изменения):

if __name__ == "__main__":
    myparams = {"server":"mpilgrim", \

Принимая во внимание, что эти строки, по-видимому, присутствуют, как контекст, в разности, потому что там будет изменением вскоре после них (таким образом, они - контекст, обеспеченный перед изменением):

                     "pwd":"secret" \
                     }

Эти строки, по-видимому, не достаточно близко к любому изменению, указанному в разности, которая будет включена как контекст:

                    "database":"master", \
                    "uid":"sa", \

Вот почему они кажутся, как будто они отсутствуют в различном. Они действительно не отсутствуют, потому что разность, как предполагается, не показывает Вам весь файл. Забрать домой сообщение всего этого - то, что их отсутствие - то, не потому что разность указывает, что они удалены. Это, конечно, не указывает, что - если бы это было, это должно было бы включать их (с - знаки перед ними для указания на их удаление).

(Я говорю, по-видимому, выше того, не потому что существует любая большая вероятность, что это не то, что продолжается, а потому что в то время как diff утилита создаст diffs с конкретными количествами прежде и после строк контекста, Вы могли, если бы Вы хотели, вручную создайте или измените разность так, чтобы это имело больше или меньше строк контекста в некоторых местах, чем в других, и это все еще будет допустимая разность, при условии, что, в случае необходимости, числа в @@ строки, где изменено на соответствие.)

Для получения дополнительной информации о diff ( diff, patch, diff3, и sdiff утилиты, и также diff/patch формат), см. документацию разности GNU. В частности, можно интересоваться разделом по части об унифицированном формате.

3
ответ дан 13 November 2011 в 23:13

Другие вопросы по тегам:

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