Comparador de texto e código: diff linha por linha

Cole o texto original e a versão modificada para ver, linha por linha, quais linhas foram adicionadas (+), removidas (−) ou ficaram inalteradas.

Comparar dois textos linha a linha: como ler o diff

A ferramenta compara dois textos linha a linha: uma linha presente nos dois lados é idêntica, uma linha que existe apenas no original é removida (−) e uma linha que existe apenas na versão modificada é adicionada (+). No exemplo JSON fornecido, ela conta 5 adições, 4 remoções e 3 linhas idênticas.

O algoritmo

Os dois textos são divididos nas quebras de linha. A ferramenta calcula então a maior subsequência comum das duas listas de linhas, como o git diff: essas linhas são marcadas como idênticas, as demais linhas do original são removidas e as demais linhas do texto modificado são adicionadas. Quando linhas são substituídas, as remoções são exibidas antes das adições.

Exemplo recalculado

No JSON de exemplo (7 linhas contra 8), a chave de abertura, a linha "status": "active" e a chave de fechamento são idênticas. As linhas name, version, description e tools, modificadas, aparecem cada uma como remoção e depois como adição, e "theme": "dark" é uma adição pura: +5, −4, 3 idênticas. Outro caso: a, b, c, d contra a, B, c, d, e resulta em +2, −1 e 3 idênticas; com “Ignorar maiúsculas e minúsculas”, b e B se tornam iguais e restam +1 e 4 idênticas.

Opções e limites

  • “Ignorar espaços” remove os espaços do início e do fim da linha e reduz as sequências de espaços a um só; “Ignorar maiúsculas e minúsculas” compara em minúsculas.
  • A comparação vale para a linha inteira: um único caractere alterado marca a linha toda, sem destaque dentro dela.
  • Um bloco inserido é reconhecido: 11 linhas adicionadas no início de um texto de 15 linhas resultam em 11 adições e 15 linhas idênticas. Limite: depois de retirados o início e o fim em comum, se a zona que difere ultrapassar cerca de 10 milhões de células (linhas do original × linhas da versão modificada, ou seja, aproximadamente 3.160 linhas de cada lado), ela é exibida em bloco, com todas as suas linhas como remoções e depois como adições, mesmo as que não mudaram. Um bloco movido aparece removido do local antigo e adicionado no novo.

O botão “Inverter os textos” (setas duplas) troca o original e a versão modificada. A comparação é feita no seu navegador.

Perguntas frequentes

Como comparar duas versões de um arquivo de código?

Cole o original à esquerda e a versão modificada à direita: a ferramenta exibe as linhas adicionadas em verde (+), removidas em vermelho (−) e o número de linhas idênticas. Com o exemplo JSON fornecido, ela encontra 5 adições, 4 remoções e 3 linhas idênticas.

Por que uma linha modificada aparece ao mesmo tempo removida e adicionada?

A ferramenta compara linhas inteiras, não caracteres. Uma linha em que apenas uma palavra muda deixa de ser igual à antiga: ela é, portanto, contada como uma remoção (a antiga) seguida de uma adição (a nova). Passar "version": "1.0.0" para "2.0.0" soma assim +1 e −1 aos contadores.

Para que serve a opção “Ignorar espaços”?

Ela remove os espaços no início e no fim da linha e reduz qualquer sequência de espaços a um só antes de comparar. Um código apenas reindentado deixa então de aparecer como modificado.

A ferramenta detecta um bloco de linhas movido?

Não: um bloco movido aparece como removido do local antigo e adicionado no novo. O restante do texto continua bem alinhado, qualquer que seja o tamanho do bloco, pois a ferramenta calcula a maior subsequência comum dos dois textos, como o git diff.

A ferramenta é realmente gratuita?

Sim, todas as ferramentas do Kristools são 100% gratuitas e acessíveis sem cadastro.

Meus dados estão protegidos?

Sim. Todo o processamento é feito diretamente e com segurança no seu navegador. Nenhum dado pessoal é enviado para os nossos servidores.