O que esta ferramenta faz
Entram dois textos, sai um diff unificado.
version: 1 version: 2
name: demo name: demo
port: 8080 port: 8080
debug: true
@@ -1,3 +1,4 @@
-version: 1
+version: 2
name: demo
port: 8080
+debug: true
A comparação usa o algoritmo de Myers — o mesmo que está por trás do git diff — então o resultado é o menor conjunto de mudanças, não o primeiro encontrado. Textos idênticos dão um resultado vazio, que é a resposta que você queria.
Ler a saída
@@ -1,3 +1,4 @@— onde a mudança está: três linhas a partir da 1 à esquerda, quatro a partir da 1 à direita.-— a linha está no primeiro texto e não no segundo.+— a linha está no segundo e não no primeiro.- Um espaço no começo — a linha não mudou e aparece como contexto. Três delas de cada lado, como o Git faz por padrão.
Quando duas linhas de aparência igual diferem
-a
+a
Nada a ver e, ainda assim, não é a mesma linha. Os suspeitos de sempre: um espaço no fim, uma tabulação contra espaços e um fim de linha do Windows \r\n contra um \n do Unix — um arquivo editado em duas máquinas coleciona os três. A comparação lê os caracteres exatos, então aponta uma diferença que não consegue lhe mostrar.
O cat -A no Unix imprime um $ no fim de cada linha e um ^M para um retorno de carro; quase todo editor tem um botão de “mostrar espaços”. Qualquer um dos dois torna a diferença visível num segundo.
O que ele não faz
- Destaque por palavra. Um caractere mudado marca a linha inteira.
- Detecção de renomeação ou de movimento. Um bloco movido se lê como uma remoção e uma adição, não como um movimento.
- Uma fusão de três vias. Ele compara dois textos; não os reconcilia.
- A marca
\ No newline at end of file. Um texto que termina com quebra de linha contra outro que não termina aparece como uma linha vazia acrescentada, que é a mesma informação de forma mais simples.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.