Fusionner et résoudre des conflits lors de l'insertion de fichiers
Des conflits peuvent se produire lors de l’archivage des fichiers dans les cas suivants :
L’horodatage de votre fichier est plus ancien que la version archivée dans le serveur Team Foundation. Ceci peut se produire si vous obtenez une version plus ancienne du fichier puis tentez de l’archiver.
D’autres membres de l’équipe ont archivé des modifications entre l’heure où vous avez obtenu la dernière version du fichier et l’heure où vous avez tenté de l’archiver. Dans ce cas, deux types de modifications peuvent se produire, même dans le fichier identique :
Si vous avez modifié des lignes différentes dans le fichier que les autres membres de l’équipe, ce sont des modifications simples et elles peuvent être fusionnées automatiquement à l’aide de la fonction Fusionner tout automatiquement.
Si vous avez modifié les mêmes lignes dans le fichier que les autres membres de l’équipe, ceci s’assimile à des conflits. Les conflits sont plus complexes et nécessitent une résolution manuelle.
La résolution des conflits peut sembler complexe à première vue, mais elle peut s’avérer utile pour comprendre les différents types de conflits et de résolutions de fichiers. Pour plus d’informations, voir Fonctionnement des différences de fichiers et des types de conflits sur MSDN. En outre, cette rubrique peut aider à décrire ce qui s’affiche lorsque vous devez résoudre des conflits dans Microsoft Expression Blend ou dans Microsoft Visual Studio Team System 2008 Team Explorer.
Utilisation de la boîte de dialogue Résoudre les conflits
Lorsque des conflits se produisent lors d’un archivage, deux choix s’offrent initialement à vous :
Fusionner tout automatiquement Permet de fusionner automatiquement les conflits. Les options de fusion utilisées par la fonction de fusion automatique doivent déjà avoir été configurées par l’administrateur serveur de Microsoft Team Foundation dans Visual Studio 2008 Team System.
La fonction de fusion automatique est disponible uniquement si vous avez apporté des modifications aux différentes lignes du fichier que les autres membres de l’équipe, car dans ce cas précis, la fusion est simple. Sinon, vous devez résoudre manuellement les conflits.
Remarque : Si le conflit a été provoqué par la tentative d’archivage d’une ancienne version du fichier, la fonction de fusion automatique n’utilise généralement pas de contenu provenant de votre ancienne version car les paramètres par défaut de cette fonction donne priorité au fichier le plus récent. Pour plus d’informations sur la méthode correcte pour rétablir une version antérieure de fichier, voir Comment : Restauration d’un ensemble de modifications sur MSDN.
Résoudre Permet de résoudre automatiquement des conflits. La boîte de dialogue Résoudre le conflit de version s’affiche et indique les options supplémentaires suivantes :
Fusionner les modifications pour moi Utilise la fonction de fusion automatique. Cette option est désactivée si Expression Blend détecte que vous avez modifié les mêmes lignes dans le fichier qu’un autre membre de l’équipe.
Fusionner les modifications dans l’outil de fusion Vous invite à déterminer les modifications à accepter. Si cette option est sélectionnée, l’outil de fusion s’affiche. Voir la section suivante, « Utilisation de l’outil de fusion. »
Annuler mes modifications locales Supprime les modifications effectuées dans le fichier, tout en restaurant la version la plus récente du contenu de fichier (mais pas l’horodatage) sur le serveur Team Foundation.
Ignorer les modifications du serveur Permet d’appliquer uniquement toutes vos modifications. L’archivage du fichier entraîne la suppression des modifications effectuées par d’autres membres de l’équipe pendant l’extraction du fichier. Ceci est l’option que vous utiliserez pour restaurer une version antérieure de fichier. Pour plus d’informations sur la méthode correcte pour rétablir une version antérieure de fichier, voir Comment : Restauration d’un ensemble de modifications sur MSDN.
Attention : Veillez à informer les membres de l’équipe de votre intention d’annuler leurs modifications avant d’utiliser cette option.
Comparer Permet d’afficher une fenêtre qui compare les différences entre deux des trois versions suivantes du fichier : votre copie locale, la copie qui a été dernièrement vérifiée par un autre membre de l’équipe pendant l’extraction du fichier, et l’original qui existait avant que l’un de vous deux ait extrait le fichier. La comparaison des versions est utile pour vous aider à décider si vous souhaitez annuler vos modifications locales, ignorer vos modifications du serveur, ou fusionner et résoudre les conflits à l’aide de l’outil de fusion.
Conseil : |
---|
A titre de meilleure pratique, veillez à exécuter (F5) et à archiver ou à annuler les modifications en attente dans les fichiers après avoir résolu les conflits, et avant d’effectuer des tâches de contrôle du code source. Par exemple, si vous essayez d’obtenir une version spécifique d’un fichier après résolution de conflits mais avant d’avoir archivé le fichier, il vous sera demandé de résoudre à nouveau les conflits. Ensuite, la description du conflit dans la boîte de dialogue Résoudre les conflits sera « Vous avez un conflit lié à une modification en attente. » |
Utilisation de l’outil de fusion
L’outil de fusion vous offre le plus de possibilités car vous pouvez sélectionner des lignes individuelles en conflit et les appliquer ou les supprimer du fichier fusionné.
En haut de cet outil, deux volets affichent des versions différentes du fichier. La version qui a été archivée par l’autre membre de l’équipe pendant l’extraction du fichier est affichée à gauche, et votre copie locale (pas encore archivée) est affichée à droite. Dans chaque volet, les couleurs permettent d’identifier les lignes qui ont été modifiées à partir de la version originale du fichier qui existait avant que l’autre membre de l’équipe archive ses modifications. Les lignes en rouge représentent le texte qui a été supprimé, les lignes en vert représentent le texte qui a été inséré, et les lignes en bleu représentent le texte qui a été modifié. En cas de modifications dans la même ligne des deux fichiers dans les deux volets supérieurs, ceci est assimilé à un conflit.
Un troisième volet figure au bas de l’outil de fusion. Initialement, ce volet inférieur affiche la version originale du fichier auquel les modifications non conflictuelles à partir des deux fichiers supérieurs ont été appliquées.
Une ligne modifiée à la fois dans votre version locale et dans la version actuellement archivée, entraînant ainsi un conflit qui doit être résolu manuellement. |
|
La version originale de la ligne en conflit. |
|
Une ligne que vous avez déjà ajoutée et qui est déjà appliquée au fichier fusionné ci-dessous. |
|
Une ligne modifiée dans l’archivage le plus récent qui n’est pas en conflit avec vos modifications. Cette ligne est déjà appliquée au fichier fusionné ci-dessous et ne peut pas être supprimée. |
|
Une ligne supprimée dans la version actuellement archivée. Vous ne pouvez pas annuler cette modification car elle n’est pas en conflit avec votre version locale. |
Les conflits, identifiés dans le volet inférieur par un rectangle englobant, doivent être résolus manuellement. Pour accepter la modification à partir de l’un des deux fichiers en haut, effectuez l’une des opérations suivantes :
Cliquez sur la ligne dont vous souhaitez appliquer la modification au fichier en bas (voir l’image suivante).
Cliquez avec le bouton droit sur la modification à appliquer, puis cliquez sur Appliquer les modifications.
Cliquez avec le bouton droit sur le fichier original en bas, puis cliquez sur Appliquer les modifications à gauche ou Appliquer les modifications à droite.
Pour supprimer une modification que vous avez appliquée, effectuez l’une des actions suivantes :
Cliquez sur une ligne dont les modifications ont déjà été appliquées à partir de l’un des fichiers en haut.
Cliquez avec le bouton droit sur une ligne dont les modifications ont déjà été appliquées à partir de l’un des fichiers en haut, puis cliquez sur Supprimer les modifications.
Cliquez avec le bouton droit sur le fichier original en bas, puis cliquez sur Supprimer les modifications pour ce conflit.
Après avoir appliqué ou supprimé les conflits des deux volets supérieurs, le volet inférieur est mis à jour pour afficher les résultats des choix effectués.
Une des lignes en conflit. Cliquez sur la ligne à appliquer au fichier fusionné. |
|
La version mise à jour de la ligne en conflit. |
Si vous cliquez sur Appliquer les deux modifications, les deux lignes s’affichent dans le volet inférieur, ce qui entraîne des erreurs de génération. Mais, ceci peut s’avérer utile pour comparer visuellement les deux lignes dans le volet inférieur. Vous pouvez toujours supprimer l’une des lignes du volet inférieur une fois la comparaison terminée.
Vous pouvez appliquer toutes les lignes en conflit à partir de la version serveur du fichier ou à partir de votre fichier local en cliquant avec le bouton droit dans l’outil de fusion, en pointant sur Résoudre tous les conflits, puis en cliquant soit sur Avec des modifications sur la gauche, soit sur Avec des modifications sur la droite. Ceci s’applique uniquement aux lignes en conflit, mais ne supprime pas les lignes modifiées qui n’étaient pas en conflit.
Après avoir cliqué sur OK pour quitter l’outil de fusion, cliquez sur Oui pour enregistrer le fichier, et sur Fermer pour quitter la boîte de dialogue Résoudre les conflits. N’oubliez pas de tester votre fichier fusionné en générant (Ctrl+Maj+B) ou en exécutant (F5) votre solution avant d’archiver le fichier.
Vous trouverez une courte procédure pour l’utilisation de l’outil de fusion à Comment : Résolution de conflits entre deux fichiers sur MSDN.
Affichage de la liste des fichiers qui ont des conflits
Si vous essayez d’archiver les fichiers puis de fermer la boîte de dialogue Résoudre les conflits sans résoudre de conflits, le système de contrôle de code source assure le suivi de ces fichiers. Vous pouvez cliquer avec le bouton droit sur la solution dans le panneau Projets, puis cliquer sur Résoudre les conflits pour voir tous les fichiers qui ont encore des conflits non résolus.
Voir aussi
Tâches
Visualiser ou comparer les modifications apportées à des fichiers