Repolode
Ataraxy-Labs

Ataraxy-Labs/weave

Um driver de merge do Git no nível de entidades, que combina código por funções, classes e chaves em vez de linhas e evita conflitos falsos entre alterações independentes.

Estrelas
1,352
Forks
49
Issues abertas
2
Último commit
há 16 horas

O que é?

Weave substitui o merge de três vias baseado em linhas do Git por um merge no nível de entidades. Ele analisa as versões base, ours e theirs de um arquivo com tree-sitter, associa funções, classes e chaves entre as versões por nome, tipo e escopo e combina essas entidades. Alterações em entidades diferentes são resolvidas automaticamente, enquanto alterações na mesma entidade só entram em conflito quando são realmente incompatíveis.

O problema que a ferramenta resolve fica mais evidente quando vários agentes de IA ou desenvolvedores editam o mesmo arquivo ao mesmo tempo. O Git aponta um conflito quando duas branches adicionam funções diferentes lado a lado, mesmo que elas não colidam de fato. Weave é instalado como driver de merge por meio de `weave setup`, e os conflitos que não consegue resolver são registrados com contexto no nível da entidade, como qual função foi modificada de um lado e excluída do outro.

O projeto também inclui `weave land` para controlar e publicar merges de agentes, `weave check` e `weave explain` para revisar as resoluções, um servidor MCP para frameworks de agentes e uma configuração para Jujutsu. Ele oferece suporte a cerca de 38 linguagens e usa o merge por linhas do Git como alternativa para arquivos sem suporte ou muito grandes.

Recursos principais

  • 01Combina funções, classes e chaves como entidades, para que adições independentes a um mesmo arquivo não entrem em conflito.
  • 02Usa gramáticas tree-sitter para analisar cerca de 38 linguagens, incluindo TypeScript, Python, Go, Rust e JSON.
  • 03Aponta conflitos com contexto no nível da entidade, como o tipo da entidade e qual lado a modificou ou excluiu.
  • 04Instala-se como driver de merge do Git com `weave setup`, globalmente ou por repositório.
  • 05Oferece `weave check`, `weave explain` e `weave preview` para revisar as resoluções antes de fazer o commit.
  • 06Inclui um servidor MCP para que frameworks de agentes possam chamar suas ferramentas de merge, edição e verificação.

Casos de uso

  • Permitir que vários agentes de programação com IA trabalhem no mesmo arquivo-fonte sem precisar resolver conflitos manualmente.
  • Reduzir conflitos falsos de merge quando muitos desenvolvedores editam o mesmo módulo grande ou arquivo de configuração.
  • Adicionar uma etapa de verificação estrutural antes de publicar em uma branch um merge automatizado feito por um agente.

Início rápido

  1. 1

    Instale o weave (a seção Install do README contém os detalhes)

  2. 2

    Ative o weave no repositório para que o git o use ao fazer merge

    weave setup
  3. 3

    Execute um merge; conflitos reais aparecem como marcadores com uma linha refused_by

    git merge <branch>
  4. 4

    Confira a árvore de trabalho resolvida comparando-a com os estágios do merge

    weave check

Antes de usar

  • A mesclagem em nível de entidade pode gerar conflitos em casos que o Git mesclaria sem problemas, como mostram as regressões em vários repositórios nos próprios benchmarks do projeto.
  • Arquivos Vue, Svelte, ERB e Haskell não são mesclados deliberadamente pelo weave e são encaminhados para outros métodos de tratamento.
  • O projeto está na versão 0.5.x, e os veredictos de mesclagem mudaram entre versões.

Em coleções

Tópicos

Perguntas frequentes

O que é weave?
Um driver de merge do Git no nível de entidades, que combina código por funções, classes e chaves em vez de linhas e evita conflitos falsos entre alterações independentes. Weave substitui o merge de três vias baseado em linhas do Git por um merge no nível de entidades. Ele analisa as versões base, ours e theirs de um arquivo com tree-sitter, associa funções, classes e chaves entre as versões por nome, tipo e escopo e combina essas entidades. Alterações em entidades diferentes são resolvidas automaticamente, enquanto alterações na mesma entidade só entram em conflito quando são realmente incompatíveis.
weave é gratuito? Qual é a licença?
weave é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
weave ainda é mantido?
Manutenção ativa. O último commit de weave foi em 7 de nov. de 2026.
Para que posso usar weave?
Permitir que vários agentes de programação com IA trabalhem no mesmo arquivo-fonte sem precisar resolver conflitos manualmente. Reduzir conflitos falsos de merge quando muitos desenvolvedores editam o mesmo módulo grande ou arquivo de configuração. Adicionar uma etapa de verificação estrutural antes de publicar em uma branch um merge automatizado feito por um agente.
Como instalar weave?
Instale o weave (a seção Install do README contém os detalhes) Ative o weave no repositório para que o git o use ao fazer merge: weave setup Execute um merge; conflitos reais aparecem como marcadores com uma linha refused_by: git merge <branch> Confira a árvore de trabalho resolvida comparando-a com os estágios do merge: weave check
Onde consigo weave?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Ataraxy-Labs/weave

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

Projetos relacionados