Quando uma comparação rápida de textos compensa
A maioria das edições fica invisível depois de feita. Ler duas versões lado a lado é lento e pouco confiável: as pessoas deixam passar com frequência um dígito alterado em um preço, um "não" que sumiu ou uma data trocada.
Um diff faz essa caça por você. Casos típicos em que ele economiza tempo de verdade:
- Conferir o que a outra parte mudou em um contrato, proposta ou termo antes de você assinar.
- Comparar duas exportações da mesma lista (e-mails, SKUs, IDs) para ver quais itens apareceram ou sumiram.
- Descobrir por que dois arquivos de configuração ou arquivos
.envse comportam de forma diferente. - Revisar um artigo editado ou uma tradução em relação ao rascunho original.
Como a comparação funciona
A ferramenta usa uma abordagem de maior subsequência comum, a mesma família de algoritmos por trás do git diff e do clássico diff do Unix. Ela procura a maior quantidade possível de texto que as duas versões compartilham, mantém isso como inalterado e marca todo o resto como removido do original ou adicionado na nova versão.
O resultado é recalculado enquanto você digita ou cola, então você pode corrigir algo em qualquer uma das caixas e ver o efeito na hora. Os trechos removidos aparecem em vermelho e riscados, os adicionados em verde, e o restante como texto normal em fonte monoespaçada, para que o alinhamento em código e tabelas continue legível.
O contador acima do resultado tem um significado um pouco diferente em cada modo:
- No modo Por linhas, ele conta linhas:
+4 / −2significa que quatro linhas foram adicionadas e duas removidas. Uma linha editada conta uma vez como removida (a versão antiga) e uma vez como adicionada (a nova). - No modo Por palavras, ele conta trechos alterados, e não palavras individuais. Uma frase de seis palavras reescrita em um único lugar conta como uma remoção e uma adição.
Por linhas ou por palavras na prática
O modo por linhas trata cada linha como uma unidade indivisível. É o modelo certo para tudo em que as linhas têm sentido por si só: código-fonte, linhas de CSV, arquivos de log, listas de nomes, configurações YAML ou .ini. Ele também é rigoroso: um espaço sobrando no fim ou uma tabulação no lugar de espaços já tornam a linha diferente.
O modo por palavras divide o texto em palavras e pontuação e compara esses pedaços. Ele é muito melhor para texto corrido, em que um parágrafo inteiro costuma ser uma única linha longa e um diff por linhas só diria "este parágrafo mudou". No modo por palavras você vê exatamente quais palavras foram substituídas. Ele também é mais tolerante: diferenças que consistem só em espaços em branco, como um espaço duplo entre frases, são praticamente ignoradas.
Um bom hábito é começar no modo por linhas para ver onde estão as mudanças e depois passar para o modo por palavras para ler o que exatamente mudou dentro de uma linha longa.
Como conseguir resultados limpos e legíveis
A maioria dos diffs confusos vem de ruído de formatação, e não de edições reais. Algumas coisas para verificar antes de comparar:
- Quebras de linha e ajuste de texto. Texto copiado de um PDF ou de um e-mail muitas vezes tem quebras de linha fixas no meio das frases. Se uma versão está quebrada e a outra não, o modo por linhas vai marcar tudo como alterado. Use o modo por palavras ou remova as quebras antes.
- Maiúsculas e minúsculas. A comparação diferencia maiúsculas de minúsculas, então "Fatura" e "fatura" são diferentes. Se isso não importa para você, padronize os dois textos com o conversor de maiúsculas e minúsculas antes de colar.
- Listas ordenadas e não ordenadas. Um diff leva a ordem em conta. Se duas listas têm os mesmos itens em ordem diferente, ele vai mostrar as mudanças de posição como exclusões e adições. Ordene as duas listas do mesmo jeito antes, se só importa saber quais itens estão presentes.
- JSON e dados minificados. Um documento JSON minificado é uma única linha enorme. Formate as duas versões com o formatador de JSON usando a mesma indentação e depois compare linha por linha; cada chave fica em sua própria linha e as mudanças ficam óbvias.
- Aspas e travessões tipográficos. Editores de texto trocam
"por aspas tipográficas e-por meia-risca. À primeira vista parecem idênticos, mas são caracteres diferentes e aparecem como alterações.
Tamanho e privacidade
Os dois textos ficam na página. Nada é enviado a um servidor, então comparar um contrato ainda não divulgado, um código-fonte interno ou um arquivo com dados de clientes não é diferente de comparar duas listas de compras. Fechar a aba descarta tudo.
A velocidade depende do seu dispositivo e de quão diferentes os textos são. Alguns milhares de linhas são comparados instantaneamente; dezenas de milhares de linhas muito alteradas podem levar alguns segundos. Se parecer lento, compare só o trecho relevante ou use o modo por linhas, que tem muito menos unidades para casar do que o modo por palavras.