Un conflit de contrôle de révision se produit lorsqu'une personne tente de soumettre des modifications apportées à la version locale de son projet et qu’il s’avère impossible de rapprocher ces modifications de la dernière source de vérité dans le contrôle de révision.
Bien que ce cas de figure puisse se produire pour plusieurs raisons, il est le plus souvent dû au fait qu'une personne a apporté des modifications à une partie d'un projet d'équipe qu'un collègue a ensuite modifié. Si un membre de l’équipe soumet des modifications sans synchroniser au préalable les modifications de ses collaborateurs, un conflit survient.
La meilleure façon pour vous et vos collègues d'éviter les conflits est d'activer les fonctions d’extraction automatique et d'annulation automatique. Utilisez les pratiques recommandées en matière de contrôle de révision pour réduire les conflits de projet et mieux comprendre le fonctionnement du contrôle de révision.
Avertissements relatifs à la prévention des conflits avec les fonctions d'extraction automatique et d'annulation automatique
Unreal Revision Control permet d'éviter la plupart des conflits en activant par défaut l'extraction automatique et l'annulation automatique lors de la création d'un projet avec le contrôle de révision.
Ces fonctionnalités sont utilisées conjointement pour tenter d’extraire automatiquement une ressource lors de sa modification, et pour annuler automatiquement la modification en cas d'échec de l’extraction. Le système déclenche un avertissement à ce sujet afin d'éviter qu'un conflit ne se produise.
Ces avertissements se déclenchent principalement dans les deux cas suivants :
Tenter d'apporter des modifications à des ressources préalablement extraites par un collègue
Si vous tentez d'apporter des modifications à une ressource actuellement extraite par un collègue, vos modifications sont automatiquement annulées afin d'éviter de modifier des ressources que votre collègue a extraites en exclusivité.
Aucune action n’est requise de votre part dans ce cas, car le conflit a été évité, mais si vous devez modifier la ressource en question, il est préférable de contacter votre collègue pour qu’il l’archive à nouveau et synchronise ses dernières modifications afin que vous puissiez apporter les vôtres.
La première fois que ce conflit se produit, la fenêtre d'avertissement suivante s’affiche, vous informant que vos modifications ont été annulées et vous indiquant qui a extrait la ressource. Si vous souhaitez que ce message s'affiche systématiquement, décochez la case "Ne plus afficher ce message".
Par la suite, une notification vous informe chaque fois que ce conflit se produit.
Tenter de modifier des ressources qui ne sont pas synchronisées avec la dernière version
Si vous tentez d'apporter des modifications à une ressource dont vous n'avez pas encore synchronisé la dernière version, les modifications sont automatiquement annulées afin que vous ne puissiez pas effectuer de modifications impossibles à archiver ultérieurement.
Dans ce cas, il suffit de synchroniser la dernière version et de procéder aux modifications.
La première fois que ce conflit se produit, la fenêtre d'avertissement suivante s’affiche, vous indiquant lesquelles de vos modifications ont été annulées. Si vous souhaitez que ce message s'affiche systématiquement, décochez la case "Ne plus afficher ce message".
Par la suite, une notification vous informe chaque fois que ce conflit se produit.
Messages d'erreur de conflit
Les conflits sont plus fréquents si les fonctions Extraction automatique et Annulation automatique sont désactivées. Les circonstances qui provoquent des conflits dans le contrôle de révision Unreal sont les suivantes :
Ne pas synchroniser fréquemment la ressource avec la dernière version
Apporter des modifications sans avoir extrait au préalable une ressource
Travailler hors ligne
Dans les sections suivantes, nous vous décrivons les erreurs de conflit que vous pouvez rencontrer et leurs principales causes.
Conflits de version obsolète
Un type de conflit survient lorsque vous tentez de synchroniser les dernières modifications ou d'archiver des modifications et que vous avez apporté des modifications à une ressource préalablement modifiée et archivée par une autre personne dans un instantané plus récent que celui que vous avez dernièrement synchronisé.
Dans ce cas, un conflit survient, car vous avez apporté des modifications à une version obsolète de la ressource.
Le cas échéant, vous recevez un message d'erreur vous indiquant la ou les ressources en conflit ainsi que la personne ayant apporté les dernières modifications à ces ressources que vous devez synchroniser. Votre seule option pour résoudre ce conflit est de synchroniser les dernières modifications et d'écraser les vôtres.
Vous pouvez alors extraire les ressources que vous souhaitez modifier et, par la suite, effectuer vos modifications et les enregistrer.
Conflits d'extraction de ressources
Un autre type de conflit survient lorsque vous avez apporté des modifications à une ressource actuellement extraite par une autre personne et que vous tentez de synchroniser les dernières modifications ou d’archiver les modifications.
Si ce conflit survient, vous avez modifié un document que vous n’êtes pas autorisé à modifier, car il est extrait en exclusivité par l’un de vos collègues.
Dans ce cas, vous recevez un message d'erreur vous indiquant les ressources que vous avez modifiées et que vous n'avez pas extraites, ainsi que des instructions pour contacter votre collègue.
Si vous souhaitez ne pas tenir compte de vos modifications, vous pouvez revenir sur les modifications apportées aux ressources individuelles en conflit via le menu contextuel du contrôle de révision et relancer la synchronisation ou l'archivage.
Conflits de ressources en double
Un troisième type de conflit, bien que rare, peut survenir si deux collègues créent accidentellement des ressources portant le même nom et le même chemin de fichier, et tentent d'enregistrer et d'archiver ces objets indépendamment les uns des autres. La première personne parvient à archiver les objets, mais la seconde reçoit un message d'erreur.
Dans ce cas, nous vous conseillons de renommer le deuxième objet afin d'éviter toute suppression. Une autre solution consiste à modifier l'emplacement de la ressource dans la hiérarchie du projet, car tant que le chemin d'accès au fichier est différent, aucun conflit ne se produit.
Travailler hors ligne
Bien qu'il soit possible de continuer à travailler hors ligne sur un projet UEFN, nous vous déconseillons de le faire. Si vous travaillez hors ligne, des conflits peuvent survenir, car il est impossible d’extraire les ressources sans connexion Internet : deux personnes risquent alors de travailler sur les mêmes ressources en même temps.
Si vous travaillez hors ligne, suivez les recommandations ci-après :
Communiquez à l'avance à vos collègues les ressources sur lesquelles vous avez l'intention de travailler et, si possible, extrayez les ressources avant de perdre la connexion.
Rétablissez la connexion Internet dès que possible, synchronisez vos modifications avec la dernière version, puis vérifiez les modifications que vous avez apportées.