Introduction
Lors du développement d'une grande fonctionnalité, écrire des commits de qualité est difficile. Un commit de qualité permet aux relecteurs de passer en revue votre demande d'extraction en petites étapes, avec chaque ensemble de modifications limité à un seul aspect de la fonctionnalité.
Contexte Technique
Le problème est que les commits peuvent devenir désorganisés et il est difficile de maintenir une rigueur stricte dans l'utilisation de Git. C'est là que Jujutsu intervient, en facilitant la navigation entre les commits et l'itération rapide sur des ensembles de modifications compartimentalisées.
Cependant, les outils tels que jj absorb et jj squash -i ont leurs limites, car ils peuvent attribuer des modifications à des commits incorrects ou provoquer des conflits de fusion.
Analyse et Implications
La solution proposée consiste à créer un historique de commits idéal en utilisant jj new -B et jj squash --from pour regrouper les modifications en un seul commit. Ensuite, on utilise jj squash -i pour séparer les modifications en commits distincts.
Cette approche permet de maintenir une organisation claire et de réduire la fatigue liée à la rigueur Git. Cependant, elle présente également des inconvénients, tels que le manque de garantie que chaque commit sera compilable.
Perspective
Il est important de surveiller les limites de cette technique et de rechercher des améliorations pour résoudre les problèmes de conflits de fusion et de garantir la compilabilité des commits. De plus, il est essentiel de trouver un nom approprié pour cette technique pour la rendre plus accessible et compréhensible pour les autres développeurs.