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.
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.
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.
Créer un nouveau dépôt dans votre système Version Control ouvre la branche principale: C'est ce qu'on appelle la branche principale ou maître de 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.
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.
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é.
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.
Simplification du suivi des modifications et de la fusion de ces dernières tout au long du projet
Possibilité de comparer les fichiers et d'identifier leurs différences
Simplification de la résolution de problèmes grâce à l'archivage complet des modifications dans le VCS
Le dépôt central permet une collaboration fluide sans incidence sur les performances individuelles ou les changements de code
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
Le développement distribué permet aux développeurs de travailler là où ils le souhaitent
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.
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.
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.
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.
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.