Repolode
Wilfred

Wilfred/difftastic

Uma ferramenta de diff para linha de comando que compara arquivos pela árvore sintática, não pelas linhas, mostrando com precisão reformatações e trechos de código movidos.

Estrelas
26,158
Forks
534
Issues abertas
282
Último commit
há 3 dias

O que é?

Difftastic é uma ferramenta de diff estrutural que compara dois arquivos com base na sintaxe, em vez de linha por linha. Ela analisa os dois arquivos e destaca apenas os elementos sintáticos que realmente mudaram, mesmo quando o código foi reformatado ou dividido em mais linhas.

A ferramenta considera espaços em branco relevantes apenas onde a linguagem os trata assim, reconhecendo, por exemplo, uma alteração apenas na indentação. Para tipos de arquivo não reconhecidos, ela recorre a um diff baseado em linhas, com destaque de palavras. A saída é uma visualização lado a lado, feita para leitura, não para gerar patches.

Difftastic funciona com git e outros sistemas de controle de versão, e consegue resolver marcadores de conflito de merge comparando os dois lados. Também inclui um modo apenas de verificação, que retorna um código de saída conforme a sintaxe mudou ou não.

Recursos principais

  • 01Compara código pela árvore sintática, evitando diffs ruidosos quando há apenas uma reformatação.
  • 02Oferece suporte a mais de 30 linguagens de programação.
  • 03Destaca alterações em espaços em branco apenas quando a sintaxe as considera relevantes.
  • 04Funciona com git e outros sistemas de controle de versão.
  • 05Compara os dois lados de um conflito para gerar diff dos marcadores de conflito de merge.
  • 06Oferece um modo apenas de verificação para detectar alterações sintáticas sem gerar um diff completo.

Casos de uso

  • Revisar commits em que o código foi reformatado ou reestruturado.
  • Ler diffs de refatorações grandes em linguagens como Rust, JavaScript ou HTML.
  • Verificar no CI se duas versões de um arquivo diferem sintaticamente.
  • Inspecionar conflitos de merge lado a lado para visualizar com mais clareza as mudanças reais.

Início rápido

  1. 1

    Instale o difftastic seguindo o guia de instalação do manual

  2. 2

    Compare dois arquivos com o difft

    difft foo1.c foo2.c

Antes de usar

  • O desempenho cai bastante em arquivos com muitas alterações, e o uso de memória pode ser alto.
  • A ordem é sempre considerada significativa; por isso, itens reordenados, como elementos de conjuntos ou chaves não ordenadas, são exibidos como alterações.
  • Não realiza mesclagens nem gera patches que possam ser aplicados posteriormente.

Em coleções

Tópicos

Perguntas frequentes

O que é difftastic?
Uma ferramenta de diff para linha de comando que compara arquivos pela árvore sintática, não pelas linhas, mostrando com precisão reformatações e trechos de código movidos. Difftastic é uma ferramenta de diff estrutural que compara dois arquivos com base na sintaxe, em vez de linha por linha. Ela analisa os dois arquivos e destaca apenas os elementos sintáticos que realmente mudaram, mesmo quando o código foi reformatado ou dividido em mais linhas.
difftastic é gratuito? Qual é a licença?
difftastic é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
difftastic ainda é mantido?
Manutenção ativa. O último commit de difftastic foi em 4 de nov. de 2026.
Para que posso usar difftastic?
Revisar commits em que o código foi reformatado ou reestruturado. Ler diffs de refatorações grandes em linguagens como Rust, JavaScript ou HTML. Verificar no CI se duas versões de um arquivo diferem sintaticamente. Inspecionar conflitos de merge lado a lado para visualizar com mais clareza as mudanças reais.
Como instalar difftastic?
Instale o difftastic seguindo o guia de instalação do manual Compare dois arquivos com o difft: difft foo1.c foo2.c
Onde consigo difftastic?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Wilfred/difftastic

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados