Publication de la bêta 1.0 de Pijul, système open source de gestion de versions distribuée
(pijul.org)-
Basé sur la théorie des patchs, tout en étant rapide et évolutif
-
Commutation
→ Chaque changement peut être appliqué dans n’importe quel ordre sans modifier l’identifiant de version
→ Un workflow bien plus simple que git rebase ou hg transplant
→ Il existe une fonctionnalité de channels, similaire aux branches, mais ce n’est pas un élément aussi central que dans d’autres systèmes. Par exemple, une branche de fonctionnalité n’est dans Pijul qu’un simple changement
→ Garder un historique propre est le comportement par défaut
- Merge correctness
→ Pijul garantit plusieurs propriétés lors d’un merge
→ La plus importante est que l’ordre des lignes est toujours préservé, contrairement aux merges 3-way où les lignes peuvent parfois être mélangées
→ Lorsqu’il est impossible de déterminer l’ordre (comme en cas d’édition simultanée), cela devient un conflit, ce qui le distingue des systèmes qui le considèrent comme « automatique » ou « sans conflit »
- First-class conflicts
→ Dans Pijul, un conflit n’est pas un « échec de merge », mais un cas standard modélisé comme tel
→ En particulier, un conflit entre deux changements est résolu par un changement unique
- Partial Clones
→ Grâce à la commutation, il est possible de cloner uniquement un petit sous-ensemble du dépôt. En pratique, on peut aussi n’appliquer que les changements portant sur ce sous-ensemble
→ Le travail sur les partial clones génère des changes faciles à envoyer vers de très grands dépôts
3 commentaires
Honnêtement, même si Git est le standard dans le milieu pro et qu’on l’utilise, je l’ai toujours trouvé très peu pratique... Il est temps de migrer petit à petit vers Pijul, basé sur Rust.
La plus grande différence entre svn et git (en laissant de côté le fait qu’il s’agisse d’un dépôt distribué), c’est que svn gère les diff alors que git gère des snapshots ; du coup, comme on parle ici de théorie des patchs, j’ai l’impression qu’on est plutôt du côté d’un système qui gère les diff.
Vous pouvez voir la théorie des patchs (Theory of Patches) dans Darcs, un système de gestion de versions distribué.
Lorsqu’on compare Darcs et Git, on l’explique ainsi.
A set of changes that you record in Git is called a “commit”, while in Darcs it is called a “patch”.