Dossier : Le versionning au service de développeurs
0
Beaucoup d’entre vous connaissent Github ou des équivalents et savent s’en servir. Mais pour les nouveaux développeurs, l’utilisation de tels logiciels et leur façon de fonctionner est parfois un peu obscure. Pas de magie noire ici, nous allons débroussailler ce qu’est le versionning et expliquer en quoi c’est génial !
1) Qu’est-ce que le versionning ?
Quand on développe un programme ou un logiciel, on est rarement le seul à travailler dessus (à moins d’être sur un projet personnel, mais même ce cas-là ça arrive de moins en moins souvent). Deux personnes qui travaillent sur un programme et qui sont assignées à des parties différentes du programme ne devraient pas avoir de soucis, mais il peut arriver que l’un des deux développeurs doive travailler sur un bout de code de l’autre. Et là, c’est tout de suite la galère : comment ne pas écraser les modifications de l’autre ? Et même d’un point de vue plus pratico-pratique, gérer une cinquantaine de fichiers et trouver celui qui a été modifié pour le mettre à jour sur son PC est fastidieux. Et c’est du temps de productivité perdu que l’on aurait pu passer à regarder des vidéos de chat sur Youtube ou sur Catmoji.
C’est là que le versionning intervient : plutôt que de tout faire manuellement, un logiciel s’occupera de gérer les versions (appelées également révisions) des fichiers. Attention, il ne faut pas confondre version de logiciel (qui correspond à une étape « finie et fonctionnelle » d’un logiciel qui peut donner lieu à une release au public) et version de fichier (le principe est le même mais appliqué au fichier) ; c’est pour cela que l’on préfère le terme de révision. Ainsi, si un développeur A fait une modification sur un fichier donné, le développeur B aura également ce fichier à jour sur son ordinateur. Pratique non ?
2) Les branches :
On peut aller plus loin : quand un développement se révèle être très important et qu’il touche à des fichiers au cœur du logiciel ou du site web, on peut créer une branche de développement parallèle. La création d’une branche permet de créer un double du projet et de continuer à faire de nouveaux développements sans avoir à toucher au travail des autres développeurs sur la branche principale. Une autre utilité des branches est de pouvoir par exemple continuer à maintenir une ancienne version (logicielle) d’un programme tout en développant la nouvelle version (on pourrait prendre comme exemple les versions de PHP : la version 5.5.1 est sortie il y a peu de temps mais la version 5.4.X bénéficie encore de corrections de bugs de sécurité).
Le fait de combiner la branche vers la partie principale est appelé « merge ». Le problème qui peut se poser lors de l’utilisation de branches (ou plus généralement des logiciels de gestion de version) est le probable risque de conflits. Cela se passe lorsque deux développeurs travaillent sur la même partie d’un fichier et que le logiciel ne sait pas quel version garder. À ce moment-là, il faut bien que les développeurs se mettent d’accord sur quelle version garder.
3) Conclusion :
Nous avons vu à quoi servait le versionning et en quoi cela consistait. Et maintenant ? Il y a beaucoup de systèmes de gestion de versions différents (SVN, Git, Mercurial …) et d’outils permettant de les gérer (Github, Bitbucket …). Le tout est d’utiliser celui que l’on préfère, mais ça nous paraît important dans chaque développement où plus d’un développeur travaille sur le projet.






