tools.poderoso.io
← poderoso.io

Comparador de textos (diff) online

·compara dois textos linha por linha
// texto original
0 linhas
// texto modificado
0 linhas

O comparador de textos mostra linha a linha o que mudou entre duas versões, marcando o que entrou e o que saiu. Serve para conferir alteração em configuração, resposta de API, log e qualquer texto que não esteja versionado em Git.

Como a comparação é feita

O algoritmo usa a maior subsequência comum, o mesmo princípio por trás do git diff, para achar o menor conjunto de mudanças que transforma um texto no outro. Isso evita o resultado inútil de marcar tudo como alterado quando você apenas inseriu uma linha no começo.

O custo é proporcional ao produto do número de linhas dos dois lados, então arquivo muito grande fica pesado. Acima de um limite a ferramenta força o modo que mostra só as diferenças, porque renderizar todas as linhas iguais de um diff gigante trava a aba.

Diferença invisível

Quando o diff acusa mudança em uma linha que parece idêntica, quase sempre é uma destas quatro: espaço no fim da linha, tabulação trocada por espaços, fim de linha em CRLF do Windows contra LF do Unix, ou marca de ordenação de bytes no começo do arquivo.

As ferramentas de texto ajudam aqui: limpar o texto dos dois lados antes de comparar transforma um diff cheio de ruído em um diff com as mudanças reais.

Quando usar

Comparar duas respostas de API para achar o campo que mudou, conferir arquivo de configuração entre ambientes, revisar texto de contrato ou documento, e validar que uma migração produziu a saída esperada.

Nada do que você cola aqui sai do seu navegador. O processamento é todo local, em JavaScript, sem envio para servidor, sem log e sem armazenamento.

Perguntas frequentes

A comparação é por linha ou por palavra?

Por linha. Uma linha alterada aparece como removida e adicionada, o que é o comportamento esperado para código, configuração e log.

Posso comparar arquivos grandes?

Até cerca de vinte megabytes por lado. Acima disso a comparação é bloqueada, porque o consumo de memória cresce com o produto do número de linhas dos dois textos.

Os textos comparados são enviados para servidor?

Não. A comparação roda no navegador, então é seguro comparar configuração com senha, resposta de API com dado de cliente ou documento interno.

Por que o diff acusa mudança em linhas iguais?

Quase sempre é caractere invisível: espaço no fim da linha, tabulação contra espaços, CRLF contra LF ou marca de ordenação de bytes. Limpe os dois textos antes de comparar.

Referências

  • Maior subsequência comum (LCS)O algoritmo por trás desta comparação e da maioria das ferramentas de diff.
  • git diffA documentação do diff do Git, útil para entender as opções de tratamento de espaço em branco.