Voici Smart Locks, une nouvelle façon de réduire les conflits de fusion avec la Version Control d'Unity.

Chez Unity, nous sommes passionnés par le fait de permettre aux créateurs de faire leur meilleur travail. C'est pourquoi l'équipe Unity DevOps est ravie de présenter Smart Locks, une nouvelle fonctionnalité de Unity Version Control.
Smart Locks réduit considérablement les pénibles conflits de fusion généralement associés aux verrous de fichiers et aux branchements. Les développeurs ont depuis longtemps recours aux branches pour accélérer et sécuriser l'itération. Désormais, tout le monde, y compris les artistes, peut utiliser la ramification pour échelonner les projets en toute confiance.
Smart Locks vérifie automatiquement que vous travaillez à partir de la dernière version avant de vous permettre de verrouiller un fichier, ce qui réduit considérablement le risque de conflits de fusion et permet aux équipes de travailler en toute sérénité.
Si vous êtes un artiste et que vous créez une branche de fonctionnalité, une branche de tâche ou une branche personnelle, Smart Locks vous offre la flexibilité de créer des branches et de travailler en parallèle avec vos coéquipiers sans vous soucier des conflits. Vous pouvez expérimenter et itérer plus rapidement tout en conservant l'historique de votre projet principal.
Smart Locks vous aide à explorer divers flux de travail. Au lieu de changer votre équipe pour qu'elle suive votre système de contrôle de version (VCS), vous pouvez adapter Unity Version Control à ce qui fonctionne le mieux pour votre équipe.
De nombreux utilisateurs pensent qu'il suffit de verrouiller ou d'extraire un fichier pour éviter les conflits de fusion. Malheureusement, ce n'est pas la réalité.
Les mécanismes traditionnels de verrouillage des fichiers offrent une protection contre certains conflits, mais ces verrous n'ont pas réussi à se déplacer de branche en branche, ce qui a permis à un autre artiste d'extraire le même fichier d'une branche différente. Cette incapacité à se déplacer rend les équipes vulnérables aux conflits de fusion en ne s'attaquant pas à l'incompatibilité sous-jacente du flux de travail avec le branchement.
Pour comprendre le fonctionnement des verrous intelligents, examinons d'abord comment un conflit de fusion se produit, même lorsque les équipes utilisent correctement les verrous de fichier.

Ce scénario illustre la manière dont les équipes qui utilisent le branchement rencontrent fréquemment des conflits de fusion, malgré leurs efforts pour utiliser le verrouillage des fichiers. Le résultat ? Perte de temps et baisse du moral de l'équipe. Smart Locks résout ce problème en permettant aux utilisateurs de définir une branche comme source de vérité.
Qu'il s'agisse d'une branche ou d'un fil de discussion unique, le verrou "voyagera" à travers les branches, en suivant une ligne de développement unique, jusqu'à ce qu'il atteigne la branche de destination où la modification est vérifiée ou réintégrée. Smart Locks applique cette ligne de développement unique, que vous continuiez à travailler dans une branche ou que vous créiez des branches enfantines.

Toutes les demandes de verrouillage associées à un fichier donné seront désormais informées des nouvelles versions existant dans les différentes branches. Cela signifie que vous n'avez pas à vous demander si vos modifications entrent en conflit avec celles d'un coéquipier ou si vous travaillez sur une version obsolète.
Ce processus simple et efficace permet d'éviter que plusieurs membres de l'équipe ne travaillent simultanément sur des versions contradictoires, de sorte qu'aucune modification ne passe à travers les mailles du filet. Cela permet de s'assurer que la vision artistique de chacun est prise en compte et de rendre la collaboration simultanée pratiquement indolore.

La plupart des programmeurs, probablement familiers avec les systèmes basés sur Git, comprennent et apprécient déjà la valeur des embranchements. Les principaux avantages de l'embranchement pour les artistes sont les mêmes que pour les codeurs.
Lorsque vous travaillez dans des branches, vous êtes effectivement séparé de l'histoire principale de votre projet. Cette isolation vous permet de réaliser des prototypes et des expériences en toute sécurité, sans craindre de casser votre projet.
L'expérimentation en toute sécurité vous permet d'itérer en permanence et de construire plusieurs versions, afin que vous puissiez choisir votre version préférée en naviguant dans l'historique du référentiel. Laissez gagner la meilleure idée.
Les ramifications réduisent intrinsèquement le bruit de la collaboration simultanée. Il laisse la place à la création d'idées nouvelles tout en maintenant une relation avec le concept original. En termes simples, imaginez la différence entre l'itération dans un document Google par vous-même et le travail dans un document unique avec deux cents autres collaborateurs.
Vous pouvez générer de nouveaux concepts sans craindre les conflits de fusion, en les stockant dans votre système de contrôle de version plutôt que de travailler indépendamment dans votre disque local ou dans une source externe non intégrée à votre projet principal.
Le branchement permet aux équipes de diviser les flux de travail complexes en éléments digestes. Vous pouvez créer des branches correspondant à la façon dont vous avez organisé votre projet. Dans le domaine du développement de jeux, il est naturel de cloisonner le travail pour faciliter la gestion du projet. Par exemple, vous pouvez diviser le travail au sein d'une équipe par caractéristiques, par personnages ou même par niveaux entiers. Votre équipe peut se concentrer sur le travail qui lui est assigné au sein de sa branche spécifique.
La répartition du travail au sein des branches permet aux différentes équipes et à leurs membres de travailler à leur propre rythme, dans leur propre style et avec leurs propres processus, tout en contribuant simultanément à l'ensemble du projet. Cette suppression des frictions ne rend pas seulement la collaboration plus fluide, mais votre équipe est également plus susceptible de mettre à jour l'historique de votre projet à une fréquence plus élevée. Vous pouvez expédier plus rapidement et répondre aux attentes des joueurs.
La création de branches permet d'obtenir plus facilement une vue d'ensemble de l'historique de votre projet, tandis que l'enregistrement des modifications dans le fichier principal rend plus difficile l'obtention d'une vue d'ensemble des modifications. Le branchement vous permet d'identifier ces changements plus rapidement.
Nous avons conçu Smart Locks pour donner à tous les membres de votre équipe une certaine flexibilité en termes de mode de travail. Nous reconnaissons également que la gestion de verrous de fichiers complexes peut être un obstacle dans certaines situations, comme les phases d'idéation et d'expérimentation du projet.
C'est pourquoi, en plus des serrures mobiles, nous avons également mis au point une nouvelle fonction d'exclusion de branches. Cela vous permet d'exclure des branches du mécanisme de verrouillage en définissant des règles de verrouillage personnalisées. Lorsque vous savez que vous n'aurez jamais besoin de fusionner avec la branche source, vous pouvez réaliser des prototypes ou des expériences au sein de votre branche, sans être gêné par les contraintes de verrouillage des fichiers.
Pour vous permettre de suivre des projets complexes et de visualiser clairement votre liste de blocages existante, nous avons également amélioré l'interface utilisateur graphique (GUI) à la fois sur le client de bureau et au sein d'UDash. En consultant l'historique de vos verrous, vous pouvez facilement voir qui a créé un verrou et quand.

En outre, nous avons placé des affordances plus visibles pour indiquer comment verrouiller et déverrouiller les fichiers, accompagnées de messages utiles qui vous informeront de tout verrouillage existant sur un fichier spécifique.

Pour profiter de cette fonctionnalité qui change la donne, il vous suffit de mettre à jour votre installation de Version Control d'Unity. Pour les clients sur site ou les anciens clients de Plastic SCM Enterprise, vous devrez mettre à jour vos serveurs et vos clients pour profiter pleinement des avantages des serrures intelligentes.
Veillez à lire la documentation avant de commencer.
Unity Version Control est un outil de contrôle de version agnostique qui permet de gérer rapidement des fichiers volumineux et des binaires. Grâce à des flux de travail optimisés pour les artistes et les programmeurs des studios de jeux de toutes tailles, vous pouvez améliorer la collaboration au sein de l'équipe et augmenter la productivité afin de livrer des jeux de haute qualité plus rapidement et plus efficacement. Pour commencer gratuitement, inscrivez-vous à Unity DevOps (des conditions s'appliquent).