Lançada a versão beta 1.0 do Pijul, sistema open source de controle de versão distribuído
(pijul.org)-
Baseado na teoria de patches, mas ainda assim rápido e escalável
-
Commutation
→ Cada mudança pode ser aplicada independentemente da ordem, sem alterar o ID da versão
→ Workflow muito mais simples que git rebase ou hg transplant
→ Há um recurso de channels parecido com branch, mas ele não é algo tão importante como em outros sistemas. Por exemplo, uma feature branch no Pijul é apenas uma mudança
→ Manter o histórico limpo é a configuração padrão
- Merge correctness
→ O Pijul garante alguns pontos durante o merge
→ O mais importante é que a ordem das linhas é sempre preservada. Diferente de merges 3-way, em que às vezes as linhas se misturam
→ Quando não é possível determinar a ordem (como em edições simultâneas), isso vira um conflito, o que o diferencia de sistemas que tratam isso como "Automatic" ou "No Conflict"
- First-class conflicts
→ No Pijul, conflito não é modelado como "falha de merge", mas como um caso padrão
→ Em especial, um conflito entre duas mudanças é resolvido como uma única mudança
- Partial Clones
→ Com Commutation, é possível clonar apenas um pequeno subconjunto do repositório. Na prática, também é possível aplicar somente as mudanças desse subconjunto
→ O trabalho com Partial Clone gera Changes que podem ser enviadas facilmente para repositórios grandes
3 comentários
Sendo bem sincero, o Git é o padrão no mercado e a gente usa, mas sempre foi bem incômodo... Já está na hora de ir migrando aos poucos para o Pijul, baseado em Rust
A maior diferença entre svn e git (tirando o fato de ser um repositório distribuído) é que o svn gerencia diffs, enquanto o git gerencia snapshots; então, como falam em teoria de patches, isso me faz pensar que talvez ele esteja mais para o lado de gerenciar diffs.
A teoria de patches (Theory of Patches) pode ser vista no Darcs, que é um sistema de controle de versão distribuído.
Ao comparar Darcs e Git, costuma-se explicar assim.
Um conjunto de mudanças que você registra no Git é chamado de “commit”, enquanto no Darcs é chamado de “patch”.