Qu'est-ce que la gestion de versions ?

La gestion de versions, aussi connue sous le nom de gestion de code source, est basée sur des outils dédiés au suivi des modifications effectuées sur le code source au fur et à mesure. La gestion de versions permet une collaboration rapide et efficace entre les développeurs, tout en préservant l'intégrité du code et en permettant aux équipes de développement de logiciels de travailler sans craindre des conflits de code.

Gestion de versions : explications

Les logiciels de gestion de version (VCS) permettent aux équipes de sauvegarder et d'archiver le code source de leurs projets. Cette solution permet d'effectuer des révisions et des modifications dans le dépôt plus facilement ou de restaurer des anciennes versions si une erreur de conception survient.

La gestion de versions est le processus systématique de suivi et de gestion des mises à jour du code source et des ressources. Les logiciels de gestion de versions sont indispensables pour des flux de production efficaces, car ils sont considérés comme la source unique de vérité pour les programmeurs, les infographistes et les autres membres de l'équipe, tout en permettant à chacun de contribuer indépendamment à une base de code partagée. Ils agissent également comme un filet de sécurité, permettant « d'annuler » les mises à jour du code si une erreur fatale est introduite au cours du développement.

Des facteurs tels que la taille et la répartition géographique d'une équipe peuvent influencer le choix du logiciel de gestion de versions par les développeurs de jeu. Les développeurs individuels peuvent trouver qu'une solution locale est tout ce dont ils ont besoin pour rester sur la bonne voie, tandis que des équipes plus importantes doivent plutôt rechercher un logiciel de gestion de versions plus robuste et évolutif, qui leur permet de collaborer en fonction des différents fuseaux horaires et zones géographiques.

La gestion de versions permet également la création de branches. Une branche est une copie unique de code gérée dans un VCS. Grâce à la création de branches, les développeurs et les autres membres de l'équipe peuvent travailler indépendamment les uns des autres, dans des flux séparés. La gestion de versions permet aux développeurs de travailler en collaboration et de façon synchronisée, dans une base de code partagée.

Pourquoi la gestion de versions est-elle importante ?

Les logiciels de gestion de versions constituent l'un élément central de DevOps, car ils vont permettre aux équipes de collaborer et d'itérer rapidement sur le code source d'un projet.

Le fait de travailler avec la gestion de versions permet d'avoir toujours une sauvegarde. Les mises à jour de projets individuelles sont réunies périodiquement dans un groupe unique, appelé « commit », avant d'être fusionnées dans le code source principal. Un logiciel de gestion de versions est indispensable pour le suivi de toutes les modifications effectuées dans chaque fichier du projet. Si une erreur ou régression est causée dans un fichier, les utilisateurs peuvent revenir presque immédiatement à une version précédente de ce dernier. La gestion de versions donne accès également à un journal de toutes les modifications, au nom des personnes les ayant effectuées et à toutes les versions des changements. Grâce à un logiciel de gestion de versions, toutes les parties prenantes et tous les membres d'une équipe peuvent travailler en même temps et en toute fluidité sur de nombreux fichiers. Les logiciels de gestion de versions vont vous permettre également de fusionner toutes les modifications de code dans un seul et même dépôt.

Grâce à l'accès à un historique complet du projet et à la possibilité de revenir sur ses erreurs, les logiciels de gestion de versions simplifient le suivi des bugs et facilitent la restauration de fonctionnalités précédemment supprimées.

Logiciels de gestion de versions centralisés

Fonctionnement de la gestion de versions

Le fait de créer un nouveau dépôt dans votre logiciel de gestion de versions ouvre la branche principale : cette dernière est donc appelé branche principale ou tronc. Le tronc est l'endroit où la base de code principale entre dans le pipeline, où elle est ensuite compilée et déployée jusqu'à l'utilisateur final.

Que sont donc les branches ? La création de branches correspond à la division du code en plusieurs flux, à partir du tronc. Cela va donc permettre aux développeurs d'effectuer leurs propres modifications au code sans toucher à celui de base. L'utilisation de branches signifie que les développeurs n'ont pas besoin d'avoir accès à l'historique complet sur un serveur unique et qu'ils peuvent donc garder à la place un historique complet des changements qu'ils ont effectué sur le code, au fur et à mesure. Un logiciel de gestion de versions peut ainsi traiter ces différentes branches et les fusionner dans le tronc. Si un développeur n'est pas prêt à fusionner ses branches de tâches dans le tronc, il peut également intégrer ses modifications dans une branche séparée et ensuite la fusionner dans le tronc quand il le souhaite.

Une véritable stratégie de création de branches doit absolument être mise en place pour éviter les conflits de code et les ruptures de compilations. Fort heureusement, de bons logiciels de gestion de versions permettent aux équipes de se synchroniser facilement à la branche principale et résoudre tout conflit de code éventuel, même après que le code a été intégré à la branche principale d'intégration.

Logiciels de gestion de versions partagés : explications

Les logiciels de gestion de versions partagés vous permettent d'enregistrer, de créer des branches et de fusionner sans vous connecter au serveur principal. Chaque contributeur travaille à partir d'un dépôt cloné stocké dans le cloud. Leur principal avantage est que les collaborateurs peuvent travailler séparément, à grande vitesse, sans se soucier de la lenteur des réseaux ou des VPN. Il est même possible de travailler sur un projet hors ligne, mais une connexion Internet est toujours obligatoire pour intégrer ou extraire des mises à jour.

Les logiciels de gestion de versions peuvent entraîner des temps d'attente conséquents si vous avez besoin de télécharger l'intégralité de l'historique de votre projet, en particulier pour des projets volumineux avec leurs historiques complets de modifications. Les studios travaillant avec des fichiers binaires volumineux doivent surveiller attentivement l'utilisation du stockage, car ces fichiers peuvent rapidement occuper un espace conséquent.

Les studios en recherche de flexibilité et de possibilité d'augmenter leur productivité doivent envisager une solution de gestion de versions partagée.

Logiciels de gestion de versions partagés

Logiciels de gestion de versions centralisés : explications

Les logiciels de gestion de versions centralisés utilisent un flux de production de validation et de lancement pour se connecter au serveur principal. Toute modification ou mise à jour du code source est automatiquement stockée dans le dépôt en tant que nouvelle version. Les logiciels de gestion de versions centralisés proposent des fonctionnalités de création de branches et de fusion performantes qui ne nécessitent aucun clonage du dépôt sur plusieurs machines. À cet égard, ce système est potentiellement plus sûr. Les logiciels de gestion de versions centralisés nécessitent une connexion au réseau. Étant donné que les équipes sont toutes liées à une version unique du projet stockée sur un serveur, les interruptions de service peuvent entraîner des ralentissements conséquents. Un autre inconvénient de la gestion de versions centralisée est qu'elle n'est pas très flexible. Plus vous avez de développeurs qui contribuent à votre projet, moins il y a de possibilités d'effectuer des modifications dans un environnement stable, ce qui peut entraîner des problèmes tels que des conflits de fusion. Si vous êtes intéressés par les logiciels de gestion de versions faciles à configurer et à utiliser, vous pouvez envisager de travailler avec un flux de production centralisé.

Logiciels de gestion de versions locaux : explications

Les logiciels de gestion de versions locaux sont la forme la plus simple de gestion de versions et ils sont généralement utilisés par des développeurs indépendants plutôt que par des équipes. Avec la gestion de versions en local, toutes les données du projet sont stockées sur un seul ordinateur et les modifications apportées aux fichiers du projet sont stockées sous forme de correctifs. Chaque correctif ne contient que les mises à jour intégrées depuis celui qui le précède. Si un problème survient avec une version spécifique de votre projet, vous devez examiner l'ensemble des correctifs pour reconstituer l'aspect des fichiers du projet à un moment précis, afin de diagnostiquer le problème. Étant donné que les logiciels de gestion de versions locaux sont liés à un seul ordinateur, ils sont par définition beaucoup moins flexibles que leurs équivalents partagés ou centralisés. La collaboration entre coéquipiers est compliquée et si la base de données est compromise, il peut être difficile, voire impossible, de restaurer les informations qui ont été perdues. Généralement, il est judicieux de commencer avec une gestion de versions en local, mais dès que vous commencez à évoluer (même pour passer d'une seule personne à une équipe de deux), il vaut mieux commencer à travailler sur votre projet de manière partagée ou centralisée.

Avantages de la gestion de versions

Suivi des modifications

Simplification du suivi des modifications et de la fusion de ces dernières tout au long du projet

Comparaison de fichiers

Possibilité de comparer les fichiers et d'identifier leurs différences

Résolution de problèmes

Simplification de la résolution de problèmes grâce à l'archivage complet des modifications dans le VCS

Dépôt centralisé

Le dépôt central permet une collaboration fluide sans incidence sur les performances individuelles ou les changements de code

Partage de fichiers

Gain de temps et d'espace grâce au partage de fichiers fluide entre les développeurs et toutes les parties prenantes, sans avoir à enregistrer continuellement les copies des ajustements apportés au code

Développement distribué

Le développement distribué permet aux développeurs de travailler là où ils le souhaitent

Lectures similaires

Découvrez des ressources supplémentaires pour en savoir plus sur les logiciels de gestion de versions et les autres outils et processus DevOps.

Comparaison entre Agile et DevOps

Agile et DevOps ont le même objectif : apporter une valeur ajoutée au client grâce à des plannings de publication réguliers. Ces deux systèmes diffèrent néanmoins légèrement dans leur approche. Découvrez comment ils peuvent fonctionner ensemble.

Principes DevOps

Tous les studios de jeux souhaitent accélérer leur production tout en réduisant les périodes de stress pendant la finalisation d'un projet et DevOps est le meilleur moyen d'y parvenir. Commencez par apprendre les principes clés de la méthodologie DevOps.

Avantages de DevOps

La mise en place des pratiques DevOps peut rationaliser votre pipeline de développement et faire le bonheur de votre équipe et de vos utilisateurs. Découvrez comment DevOps peut vous aider.

E-book sur la gestion de versions

Choisiriez-vous le travail partagé ou centralisé ? Chacun a ses avantages et ses inconvénients. Découvrez dans cet e-book gratuit quelle approche de la gestion de versions fonctionnera le mieux pour votre équipe.

Gestion de versions pour le développement de jeux

Travaillez de manière distribuée et centralisée grâce au logiciel Unity de gestion des versions. Gérez de gros fichiers binaires grâce à des flux de production basés sur le classement et les modifications. Stockez le code source et les ressources, et effectuez le suivi des modifications avec un logiciel de gestion de versions sécurisé, conçu pour n'importe quel moteur.

Ce site utilise des cookies dans le but de vous offrir la meilleure expérience possible. Consultez notre politique de cookies pour en savoir plus.

Compris