diff --horizon-lines = linhas explicadas

2

Encontrei ambas as citações na mesma diff option --horizon-lines=lines :

Do not discard the last lines lines of the common prefix and the first lines lines of the common suffix. [source]

A citação acima se conecta à próxima citação aqui para mais explicações:

The --horizon-lines=lines option prevents diff from discarding the last lines lines of the prefix and the first lines lines of the suffix. [source]

Alguém por favor pode explicar o que isso pode significar? Especialmente "o prefixo comum e as linhas de primeira linha do sufixo comum "

    
por erch 29.09.2014 / 00:23

1 resposta

4

Esta explicação parece fazer mais sentido do que os 2 acima citados por você.

excerto - link

Normally diff discards the prefix and suffix that is common to both files before it attempts to find a minimal set of differences. This makes diff run faster, but occasionally it may produce non-minimal output. The --horizon-lines=lines option prevents diff from discarding the last lines lines of the prefix and the first lines lines of the suffix. This gives diff further opportunities to find a minimal output.

Suppose a run of changed lines includes a sequence of lines at one end and there is an identical sequence of lines just outside the other end. The diff command is free to choose which identical sequence is included in the hunk. In this case, diff normally shifts the hunk's boundaries when this merges adjacent hunks, or shifts a hunk's lines towards the end of the file. Merging hunks can make the output look nicer in some cases.

A referência a "linhas de linhas" significa o número X de linhas. Então, leia mentalmente essa frase novamente, mas diga "linhas X", onde diz "linhas de linhas". O X corresponderia a um número que foi passado como um argumento para diff --horizon-lines=lines .

O segundo parágrafo que citei acima explica qual seria a diferença com essa opção especificada.

    
por 29.09.2014 / 01:23

Tags