Comparação de diferenças de texto (Diff)
Compare dois blocos de texto linha por linha e veja as linhas adicionadas e removidas destacadas em cores. Útil para verificar alterações em arquivos de configuração, revisar documentos ou fazer revisão de código sem usar o Git. Todo o cálculo é feito no navegador; o conteúdo digitado nunca é enviado a um servidor.
Dicas
- Cole a versão anterior e a posterior de um arquivo de configuração (.env, YAML, JSON etc.) para ver na hora quais linhas foram adicionadas ou removidas.
- Mesmo sem ter o Git instalado, dá para fazer uma revisão de código simples ou revisar um documento apenas copiando e colando duas versões.
- Uma linha que apenas mudou de posição é detectada como uma remoção mais uma adição, não como um "movimento" — vale lembrar disso ao interpretar o resultado.
- Espaços, quebras de linha e maiúsculas/minúsculas são comparados de forma estrita, então uma linha que só mudou a indentação também aparecerá como alterada.
- Ao comparar textos longos, colocar um parágrafo por linha antes de colar facilita ver as diferenças por parágrafo rapidamente.
Perguntas frequentes
Curiosidade — como o LCS (maior subsequência comum) calcula diferenças de texto
O algoritmo mais conhecido para detectar diferenças entre dois textos é o "algoritmo de diferenças de Myers", publicado na década de 1970 pelo cientista da computação Eugene Myers, da IBM. O comando `diff` dos principais sistemas de controle de versão, como Git e SVN, é baseado nessa família de algoritmos, detectando de forma eficiente linhas adicionadas e removidas. Esta ferramenta segue a mesma ideia, calculando a maior subsequência comum (LCS) para reduzir o resultado a um conjunto mínimo de mudanças.
A maior subsequência comum (LCS) é a sequência mais longa que aparece, na mesma ordem, em ambas as sequências comparadas — neste caso, a sequência de linhas. A diferença entre dois textos é obtida tratando toda linha que não faz parte dessa LCS como "removida" ou "adicionada"; quanto maior a LCS, menos mudanças aparecem na tela. Uma técnica chamada programação dinâmica (PD) torna esse cálculo viável mesmo para textos com muitas linhas.
Algoritmos de diferença têm uma limitação conhecida: quando uma linha apenas se move para outra posição, a maioria das implementações não detecta isso como um "movimento", mostrando-o como uma remoção junto com uma adição. É por isso que comparar textos cuja ordem de linhas foi muito embaralhada pode fazer a diferença parecer maior do que a mudança real. Conhecer essa característica ajuda a interpretar os resultados sem confusão.