Você sabia?
Como funciona
#A regra por trás do resultado, explicada para quem quer entender a conta, conferir antes de usar ou aplicar no próprio trabalho.
Comparar textos é achar o que mudou entre duas versões de um mesmo escrito: a cláusula reescrita em um contrato, a revisão que um colega devolveu, o código antes e depois de um ajuste. A ferramenta recebe o texto original e o modificado e devolve uma visão única, em que o que saiu aparece tachado com fundo vermelho e o que entrou aparece sublinhado com fundo verde.
Como ler o resultado
A visão é unificada: um só texto, o modificado, com os trechos removidos inseridos no lugar onde estavam. No modo por linha cada linha tem um sinal na margem, mais para as adicionadas e menos para as removidas, e as linhas iguais ficam sem marca. Nos modos por palavra e por caractere as marcas ficam dentro do próprio parágrafo. Os dois destaques usam fundo e ainda o sublinhado e o tachado, para que a leitura não dependa só da cor.
Abaixo do texto, as caixas de adições e remoções contam as linhas, palavras ou caracteres de cada tipo, e uma linha diz quantos trechos diferentes existem. Se nada mudou, a ferramenta diz que os textos são iguais.
A diferença entre os modos
Por linha é o modo dos programas de comparação de arquivos: cada linha é uma unidade, e uma linha com uma vírgula a mais aparece inteira como removida e adicionada de novo. Serve para código, listas, planilhas coladas e contratos com uma cláusula por linha.
Por palavra olha dentro da linha e marca só as palavras que mudaram, o que é melhor para texto corrido, em que um parágrafo inteiro costuma ficar na mesma linha. A pontuação conta como unidade própria, então trocar um ponto por vírgula aparece como a troca de um sinal, e não da palavra ao lado.
Por caractere marca cada letra. É o modo para achar um acento trocado, um zero no lugar da letra o ou um espaço a mais em um código.
Espaços e maiúsculas
Ignorar diferenças de espaços faz dois espaços valerem o mesmo que um, iguala tabulação a espaço e desconsidera os espaços no começo e no fim de cada linha. Ignorar maiúsculas e minúsculas faz Contrato e contrato serem a mesma palavra. As duas opções mudam a comparação, não o texto mostrado. Quebras de linha do Windows e a falta de quebra na última linha nunca contam como diferença.
O algoritmo
A comparação usa o algoritmo de Eugene Myers, publicado em 1986 no artigo An O(ND) Difference Algorithm and Its Variations, que está na base do diff do Unix e do Git. Ele enxerga os dois textos como um grafo e procura o caminho mais curto do começo de um ao fim do outro, em que cada passo é manter, remover ou adicionar uma unidade. O resultado é o menor número possível de remoções e adições, e o custo cresce com a quantidade de diferenças, não com o tamanho dos textos. A versão usada aqui é o refinamento em espaço linear do próprio artigo, para que textos longos caibam na memória do celular.
Limites e privacidade
Para o navegador não travar, cada lado aceita até 5.000 linhas, 20.000 palavras ou 20.000 caracteres, conforme o modo. Passou disso, a ferramenta avisa qual lado excedeu e pede para comparar por partes. Tudo roda na sua tela: nenhum dos dois textos é enviado a servidor nem guardado, o que permite comparar contratos, propostas e documentos sigilosos com tranquilidade.
Exemplos
#Conferir a versão devolvida de um contrato
Cole a minuta que você enviou em Texto original e a que voltou em Texto modificado, escolha Por palavra e ligue Ignorar diferenças de espaços. Cada cláusula alterada aparece com o que saiu tachado e o que entrou sublinhado, e as caixas de adições e remoções dizem quantas palavras mudaram.
Ver o que mudou em um código ou em uma lista
Deixe em Por linha. Cada linha alterada aparece como removida e adicionada de novo, com um sinal de menos e um de mais na margem, do jeito que os programas de versionamento mostram. Linhas iguais ficam sem marca.
Achar um erro de digitação em um número ou código
Escolha Por caractere e cole as duas versões. Um zero no lugar da letra o, um acento trocado ou um espaço a mais aparecem como um único caractere marcado, sem que a palavra inteira seja destacada.