Comparador de texto / código
Compare dois trechos de código ou texto linha por linha, com as linhas adicionadas e removidas destacadas.
Como usar
- Cole a versão anterior em "Texto original" e a versão posterior em "Texto modificado". As duas caixas começam com um pequeno exemplo em JSON que você pode substituir.
- O resultado em "Diferenças" é atualizado enquanto você digita ou cola. Não há botão de comparar.
- Leia o resultado de cima para baixo: uma linha marcada com - em fundo vermelho foi removida do original, uma linha marcada com + em fundo verde foi adicionada no texto modificado, e as linhas em texto cinza sem marca são iguais nos dois.
- Confira as contagens na mesma linha do título "Diferenças": elas indicam o número de linhas adicionadas e removidas, e uma linha editada conta uma vez como removida e uma vez como adicionada. Quando todas as linhas coincidem, aparece ali "Os dois textos são idênticos." no lugar das contagens.
Perguntas frequentes
O texto que eu comparo é enviado ou salvo?
Não. A comparação é feita no seu navegador com JavaScript, e o texto que você cola não é enviado à LeedyBox. A ferramenta também não o salva.
Por que duas linhas aparecem como removida e adicionada se parecem iguais?
As linhas são comparadas exatamente, caractere por caractere, então um espaço no final, uma tabulação no lugar de espaços, um espaço não separável no lugar de um espaço comum ou um caractere invisível de largura zero basta para que elas sejam diferentes. Muitas letras acentuadas também podem ser armazenadas em duas formas Unicode, como um único caractere ou como uma letra seguida de um acento combinante, que parecem iguais, mas não coincidem. Letras maiúsculas e minúsculas também contam como diferentes. Finais de linha do Windows e do Unix são tratados como iguais, então não são a causa.
Por que aparece uma linha vazia adicionada ou removida no final?
Geralmente um texto termina com uma quebra de linha e o outro não. O texto é dividido em cada quebra de linha, então uma quebra de linha bem no final acrescenta uma última linha vazia. Faça os dois textos terminarem da mesma forma e a linha extra desaparece.
Como são mostradas as linhas editadas e movidas?
A ferramenta procura o maior número de linhas que aparecem nos dois textos na mesma ordem e marca todas as outras como removidas ou adicionadas. Por isso, uma linha editada aparece como uma linha removida mais uma linha adicionada, geralmente com a removida primeiro; quando várias linhas seguidas são editadas, as removidas costumam vir primeiro, em grupo. Movimentações não são detectadas como tais: uma movimentação aparece como linhas removidas em um lugar e adicionadas em outro. Quando um bloco de muitas linhas muda de posição em relação a umas poucas linhas, podem ser essas poucas linhas que aparecem como removidas e adicionadas, enquanto o próprio bloco fica sem marcação.
Posso usar o resultado como patch com git apply ou com o comando patch?
Não. O resultado mostra todas as linhas, com + antes das linhas adicionadas, - antes das linhas removidas e dois espaços antes das linhas inalteradas. Diferentemente de um diff unificado, ele não tem cabeçalhos de bloco @@ com números de linha nem linhas --- e +++ com nomes de arquivo, então git apply e o comando patch não conseguem lê-lo. Use-o para revisar alterações e crie arquivos de patch com git diff ou diff -u.
Quanto texto posso comparar?
As linhas que coincidem no início e no final dos dois textos não contam para o limite e continuam aparecendo no resultado. Se o número de linhas restantes do original multiplicado pelo número de linhas restantes do texto modificado passar de 4.000.000, por exemplo 2.500 contra 2.000 linhas, a ferramenta mostra uma mensagem em vez do resultado. Nesse caso, compare os textos em partes menores. Abaixo do limite, textos longos ainda podem deixar a página lenta enquanto você digita, porque a comparação é refeita a cada alteração.
Por que um JSON ou um código reformatado mostra tantas alterações?
A ferramenta compara texto, e não significado, então um novo recuo, chaves reordenadas ou uma linha dividida em duas contam como alterações. Formate as duas versões da mesma forma, com o mesmo recuo e a mesma ordem de chaves, antes de compará-las, para que as diferenças restantes sejam principalmente alterações de conteúdo.