11.9.7 : Gestion des versions et sauvegarde des projets
Le développement d'un projet nécessite une sauvegarde de celui-ci dans un état antérieur mais le plus à jour possible afin d'éviter la perte définitive du travail déjà effectué.
Dans ce domaine, des programmes de gestions de versions ont été mis au point. Le plus puissant d'entre eux est le programme git[102]Git - fast version control, Linus Torvalds. Il permet de sauvegarder un projet complet sur autant de supports désirés (disques durs, clés USB, serveurs,~etc.), de sauvegarder l'historique de développement et également de naviguer dans cet historique afin de retrouver une version antérieure si la version la plus récente ne convient pas.
La notion de branches permet de manipuler autant d'historiques différents que l'on souhaite, chaque historique et chaque changement peuvent être fusionnés automatiquement et si ce n'est pas le cas, une aide à la fusion permet de montrer les différentes modifications entre deux versions conflictuelles.
La sauvegarde de projets de l'IN2P3 est disponible au CCALI[101]Gitlab : plateforme de développement privée via la plate-forme GitLab, et la sauvegarde de projets en général est disponible gratuitement sur la plate-forme GitHub[100]Github : plateforme de développement gratuite.
Ces outils permettent également de dupliquer un projet existant et de stocker sa copie sur l'espace de l'utilisateur qui l'a demandé. Cela permet d'avoir une sauvegarde complète d'un projet mais en effectuant des changements comme sur un projet personnel (les restrictions de modifications sont plus strictes lorsque l'utilisateur n'est pas propriétaire du projet qu'il développe).
Une fois que les modifications ont été effectuées, l'utilisateur peut demander une fusion (pull request) afin que ces modifications soient appliquées dans la version principale. Il est aussi possible de le faire au niveau des branches, on parle alors de (merge request).
Ces outils sont indispensables pour développer efficacement.