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.