Comparador de textos (diff)
Compare dois textos linha a linha, veja o que foi adicionado, removido e alterado dentro de cada linha, e copie o resultado como diff unificado.
Fixe aqui as ferramentas. Ficam guardadas neste navegador.
Fixe uma ferramenta e o autocolante dela aparece aqui.
Compare dois textos linha a linha, veja o que foi adicionado, removido e alterado dentro de cada linha, e copie o resultado como diff unificado.
A comparação procura a lista mais curta de linhas a remover do primeiro texto e de linhas a adicionar-lhe que o transforma no segundo. Encontrar essa lista é o mesmo problema que encontrar a maior subsequência comum: a maior série de linhas que aparecem nos dois textos pela mesma ordem. Esta ferramenta usa o algoritmo que Eugene Myers publicou em 1986, o que está por trás do diff do GNU e é o predefinido no Git, na sua versão de espaço linear, para que a memória usada se mantenha proporcional ao tamanho dos textos.
Quando uma linha removida e uma linha adicionada ocupam o mesmo lugar num bloco alterado, as duas são comparadas de novo palavra a palavra e as palavras que diferem são realçadas. Se as duas linhas tiverem pouco em comum, são mostradas como uma simples remoção e adição, porque realçar quase tudo não diria nada.
Uma linha marcada com − só existe no texto original, e uma linha marcada com + só existe no texto alterado. Por isso, uma linha alterada aparece duas vezes: uma vez removida, outra adicionada. As duas colunas de números são os números de linha no texto original e no texto alterado. O significado está nos marcadores; as cores só o repetem.
A vista unificada põe tudo numa só coluna, que é a ordem usada por um ficheiro de patch. A vista lado a lado mantém cada texto na sua coluna e alinha as linhas que se correspondem.
Copiar como diff unificado produz o formato de diff -u e git diff. As alterações são agrupadas em blocos (hunks) com três linhas inalteradas de contexto à volta. Cada bloco começa com um cabeçalho como @@ -1,7 +1,8 @@, que se lê assim: sete linhas a partir da linha 1 do original correspondem a oito linhas a partir da linha 1 do texto alterado.
A linha \ No newline at end of file faz parte do formato. Aparece quando um texto não termina com uma quebra de linha, para que um patch consiga reproduzir o ficheiro exatamente. As vistas da página ignoram essa diferença, porque uma última linha que parece idêntica não deve ser apresentada como alterada.
Não. A comparação é feita por JavaScript no separador do seu navegador. A ferramenta não faz nenhum pedido de rede com o que cola, e a política de segurança do site bloqueia pedidos a qualquer outro servidor.
A diferença costuma ser invisível: espaços no fim da linha, uma tabulação em vez de espaços, um espaço inseparável, ou uma letra acentuada guardada como dois caracteres em vez de um. Ative a opção de ignorar alterações de espaços em branco para excluir as três primeiras.
Sim. Guarde-o num ficheiro e execute o patch com o nome do ficheiro a alterar, por exemplo: patch notes.txt changes.diff. Se copiou o diff com uma opção de ignorar ativada, as diferenças ignoradas não estão nele, por isso o ficheiro alterado pelo patch não vai coincidir exatamente com o texto alterado.
Textos com alguns milhares de linhas são comparados numa fração de segundo. A página desenha no máximo 5000 linhas, mas o diff copiado contém sempre todas as alterações. Para dois textos muito longos quase sem nada em comum, a procura é interrompida e o resultado pode ser mais longo do que o necessário.
Abre numa janela própria e continua a funcionar offline.
Para instalar, toque no botão Partilhar e depois em «Adicionar ao ecrã principal».