Conservation de l'historique dans le génie logiciel/Concepts
Le changeset est un type primitif
modifierLe changeset est un type d'objet aussi essentiel que le fichier, le processus, la liste ou la table associative. Il fait partie des objets numériques dont le néophyte a conscience, par exemple lorsqu’il observe l'évolution d'un article de Wikipédia. Il est dans la boîte à outil du développeur, pour offrir la possibilité à l'utilisateur d'un logiciel de revenir en arrière dans le temps. Il permet de corriger des bugs dans les versions anciennes d'un logiciel sans modifier les versions les plus récentes, en faisant diverger l'histoire des sources.
Dans l'univers numérique, chaque seconde est éternelle
modifierSupposons que l'unité de temps du numérique soit le changeset. Pour un ensemble d'octets on pourrait dire qu’il est vieux de 310 changeset. On peut reconstituer l'état du monde tel qu’il était à l'époque de 240 changesets, et donc voyager dans le temps. Lorsqu'on crée un nouveau changeset qui peut s'appliquer à l'époque 240, une réalité alternative (241 bis) apparait, qui peut évoluer de façon indépendante. On peut aussi reprendre tous les changeset qui séparent l'époque 240 et l'époque 310 et tenter de les appliquer sur 241 bis, en restant attentif à éviter des paradoxes temporels.
La divergence n’est pas l'exception, c’est la règle
modifierÀ commencer par la divergence (le fork) qui se crée sur la machine du développeur lorsqu’il corrige un bug. Une fois le changeset qui représente le bug fix, il l'envoie à un ami. Cet ami va réconcilier ce patch avec son histoire et négocier d'éventuels conflits. Lorsque le consensus est trouvé, le nouveau changeset est proposé à d'autres personnes.