Est-ce que tu ne t'es jamais demandé ce que tu attends réellement lorsque tu cherches à gérer tes versions de fichiers dans un projet ? 

Là, je te parle de la philosophie des systèmes de gestion de versions, ou plus exactement de ce qu’on attend en tant qu’utilisateurs et utilisatrices.

La première chose que je souhaite faire, c’est pouvoir consulter des copies historiques de mon travail pour voir les évolutions que j’ai mené depuis une version donnée, ce qui me permet de comparer.

Du coup, indirectement ça gère la sauvegarde de mes fichiers à travers les versions successives du projet. Je peux alors exploiter une version antérieure si jamais la version actuelle ne me satisfait pas ou plus.

Si je ne suis pas contraint à travailler de manière linéaire, c’est-à-dire si je ne suis pas obligé de créer une version après une autre et que je peux plutôt créer une en parallèle d’une autre, je peux alors expérimenter des choses, passer d'une idée à une autre, sans pour autant perdre mon travail ou m’emmêler les pinceaux.

Tout ça c’est bien quand je travaille seul. Après, quand on travaille à plusieurs, on s’attend à plus, car on va vouloir partager et collaborer de la manière la plus efficace possible. Donc si on peut éviter de se soucier de qui a partagé en premier, ou de savoir si quelqu’un est en train d’éditer un fichier qu'on souhaite modifier, on gagne du temps et de la sérénité. Par exemple si je partage une nouvelle version d’un fichier et qu’après ça un des collègue dont l’historique projet n’était pas à jour publie aussi une version modifiée, ça ne serait pas bienvenu s’il écrasait mon travail.

Du coup il faudrait pouvoir faciliter la mise en commun et éviter les fusions manuelles des fichiers édités par plusieurs personnes en simultané. Typiquement, si ma collègue a édité l’entête d’un document et moi le pied de page, ça devrait rouler tout seul sans que j’ai à intervenir pour assembler nos travaux à la mano. Et dans le cas où les modifs seraient au même endroit, et bien soit moi, soit ma collègue pourrait faire l’arbitrage à la main.