1. O Que E um Diff de Texto
Um diff (abreviacao de "difference") e a representacao das diferencas entre duas versoes de um texto. A ferramenta identifica quais linhas foram adicionadas, removidas ou permanecem identicas entre o texto original e o modificado, exibindo cada uma com codificacao por cor.
O conceito foi popularizado pelo utilitario Unix diff e e fundamental no controle de versao moderno — o Git usa algoritmos de diff para calcular patches e exibir alteracoes entre commits.
2. O Algoritmo LCS
Nossa ferramenta usa o algoritmo de Longest Common Subsequence (LCS), que encontra a maior sequencia de linhas identica entre os dois textos. A partir dessa sequencia comum, o algoritmo classifica as demais linhas como adicionadas ou removidas.
O LCS e um dos algoritmos classicos de programacao dinamica, com complexidade O(m*n) onde m e n sao os numeros de linhas dos dois textos. Para textos muito longos, algoritmos como Myers ou Patience diff (usado no Git) oferecem melhor performance.
"O resultado inclui destaque em nivel de caractere para linhas modificadas, permitindo identificar exatamente quais palavras ou caracteres foram alterados."
3. Casos de Uso no Desenvolvimento
- Code Review: compare versoes de funcoes ou arquivos antes de fazer merge.
- Depuracao de configuracoes: identifique discrepancias entre arquivos de ambiente.
- Comparacao de logs: encontre diferencas entre logs de execucoes diferentes.
- Revisao de documentos: compare versoes de especificacoes ou contratos.
- Analise de traducoes: verifique se traducoes cobrem todo o conteudo original.
4. Opcoes de Comparacao
A ferramenta oferece duas opcoes adicionais:
- Ignorar espacos em branco: normaliza espacos e tabs antes de comparar, util quando a unica diferenca e indentacao ou espacamento.
- Ignorar maiusculas/minusculas: trata letras maiusculas e minusculas como equivalentes, util para comparacao de texto natural.
5. Dicas para Comparacoes Eficientes
- Para comparar arquivos grandes, divida em secoes menores para melhor performance.
- Use "Ignorar espacos" ao comparar codigo reformatado para focar nas mudancas logicas.
- O botao "Trocar" inverte os papeis de original e modificado sem precisar colar novamente.
- Os numeros de linha exibidos no diff correspondem as linhas originais de cada texto.
6. Perguntas Frequentes
Os textos sao enviados a algum servidor?
Nao. Toda a comparacao e realizada localmente no seu navegador via JavaScript. Nenhum texto e transmitido ou armazenado externamente.
Qual o tamanho maximo de texto suportado?
Nao ha limite explicito, mas textos muito grandes (acima de milhares de linhas) podem tornar a comparacao lenta devido a complexidade quadratica do algoritmo LCS. Para esses casos, recomenda-se usar ferramentas dedicadas como diff do Git ou WinMerge.
A ferramenta suporta comparacao de arquivos binarios?
Nao. O comparador foi projetado para texto puro (codigo, logs, documentos). Arquivos binarios devem ser comparados com ferramentas especializadas.