Fonctionnement des différences de fichiers et des types de conflits
Mise à jour : novembre 2007
Dans les équipes de développement de logiciel où plusieurs personnes travaillent sur le même projet, les situations de conflits dues à des différences de fichiers sont courantes. Le contrôle de version Team Foundation vous permet de résoudre ces conflits. Les conflits peuvent se produire pendant les opérations suivantes :
Fusion des modifications entre les branches
Obtention de fichiers dans votre espace de travail
Archivage de nouvelles versions d'un fichier
Types de conflit
Cette rubrique contient des informations sur les types de conflit suivants :
Conflit de version
Collision de nom de fichier
Conflit de remplacement local
Conflit de version
Les conflits de versions peuvent se produire dans le contrôle de version Team Foundation lors d'une opération d'archivage, d'obtention ou de fusion. Dans chaque cas, l'évolution d'un élément sur des chemins d'accès divergents aboutit à un conflit.
Archivage Deux utilisateurs extraient la version la plus récente d'un fichier. Le premier utilisateur archive des modifications, ce qui crée une nouvelle version du fichier. Lorsque le second utilisateur tente un archivage, un conflit de version se produit parce que les modifications de cet utilisateur n'ont pas été apportées sur la version la plus récente du fichier.
Get Deux utilisateurs extraient la version la plus récente d'un fichier. Le premier utilisateur archive des modifications, ce qui crée une nouvelle version du fichier. Lorsque le second utilisateur exécute une opération d'obtention de la dernière version, un conflit de version se produit parce que cette opération tente de mettre à jour le fichier extrait dans l'espace de travail.
Merge Un fichier avec des branches a été modifié dans les deux branches. Un utilisateur tente de fusionner des modifications d'une branche sur l'autre. Un conflit de version se produit parce que le fichier a été modifié sur les deux branches.
La résolution de conflits de version implique des modifications de fusion ou la sélection d'un jeu de modifications par rapport à l'autre. Pour plus d'informations, consultez Comment : résoudre les conflits entre deux fichiers.
Conflits de versions
Modifier local/source |
Modifier serveur/cible |
Résoudre les options (Obtenir ou Archiver) |
Résoudre les options (Fusionner) |
---|---|---|---|
Modifier Renommer Annuler la suppression |
Modifier Renommer Annuler la suppression |
Fusionner les modifications pour moi (s'il n'y a pas de conflits) Fusionner les modifications dans l'outil de fusion Annuler mes modifications locales Abandonner les modifications du serveur |
Fusionner les modifications pour moi (s'il n'y a pas de conflits) Fusionner les modifications dans l'outil de fusion Conserver les modifications dans la branche cible Copier l'élément à partir de la branche source Il s'agit de la sélection par défaut. |
|
Supprimer |
Restaurer le fichier et fusionner les modifications pour moi (s'il n'y a pas de conflits) Restaurer le fichier et fusionner les modifications dans l'outil de fusion Annuler mes modifications locales Restaurer le fichier mais conserver mes modifications |
Restaurer le fichier et fusionner les modifications pour moi (s'il n'y a pas de conflits) Restaurer le fichier et fusionner les modifications dans l'outil de fusion Ignorer les modifications de la branche source Copier l'élément à partir de la branche source |
Supprimer |
Modifier Renommer Annuler la suppression |
Annuler mes modifications locales Ignorer les modifications du serveur |
Ignorer les modifications de la branche source Supprimer l'élément dans la branche cible |
|
Supprimer |
Annuler mes modifications locales |
Ignorer les modifications de la branche source |
|
|
|
Ignorer ces conflits (Indique qu'aucune action ne sera effectuée sur les conflits de ce type.) |
Collision de nom de fichier
Les collisions de nom de fichier peuvent se produire dans le contrôle de version Team Foundation lors d'une opération d'archivage, d'obtention ou de fusion. Dans ces trois cas, le conflit provient lorsque au moins deux éléments tentent d'occuper le même chemin d'accès dans le serveur de contrôle de code source.
Check-in Deux utilisateurs ajoutent chacun un fichier à la même application. Par coïncidence, les deux utilisateurs choisissent le même nom pour les nouveaux fichiers. Un utilisateur archive son fichier. Lorsque le deuxième utilisateur tente un archivage, il se produit une collision de nom de fichier.
Get Deux utilisateurs ajoutent des fichiers de même nom à une application. Un utilisateur archive le fichier. Lorsque le deuxième utilisateur tente d'effectuer une opération d'obtention de la version la plus récente, il se produit une collision de nom de fichier. En effet, le fichier du premier utilisateur ne peut pas être récupéré à l'emplacement où le second utilisateur a ajouté un fichier.
Fusion Une application a été branchée, puis utilisée sur les deux branches. Dans les deux branches, un fichier qui porte le même nom a été ajouté. Un utilisateur tente de fusionner des modifications d'une branche sur l'autre. Une collision de nom de fichier se produit parce que le fichier ajouté à la branche source ne peut pas être branché là où un fichier a déjà été ajouté à la branche cible.
Une collision de nom de fichier peut résulter de toute opération qui ajoute ou déplace des éléments dans l'espace de noms du chemin d'accès du serveur. This includes operations such as add, rename, branch, undelete, and merge.
Pour résoudre des collisions de nom de fichier, vous devez sélectionner l'élément qui occupera finalement le chemin d'accès au serveur du contrôle de code source. Pour plus d'informations, consultez Comment : résoudre les conflits entre deux fichiers.
Collision de nom de fichier
Modifier local/source |
Modifier serveur/cible |
Résoudre les options (Obtenir ou Archiver) |
Résoudre les options (Fusionner) |
---|---|---|---|
Ajouter Brancher Renommer Annuler la suppression |
Ajouter Brancher Renommer Annuler la suppression |
Annuler mes modifications locales Ignorer le conflit |
Ignorer les modifications de la branche source Ignorer le conflit |
|
|
|
Ignorer ces conflits (Indique qu'aucune action ne sera effectuée sur les conflits de ce type.) Il s'agit du paramètre défini par défaut. |
Conflit de remplacement local
Les conflits de remplacement local se produisent uniquement dans le contrôle de version Team Foundation pendant une opération d'obtention. Ces conflits se produisent lorsqu'une opération d'obtention tente d'écrire sur un fichier accessible en écriture dans votre espace de travail. Par défaut, l'opération d'obtention remplacera seulement les fichiers en lecture seule. La résolution des conflits de remplacement local implique le remplacement ou l'extraction du fichier et la fusion des modifications.
Fichiers accessibles en écriture
Modifier local/source |
Modifier serveur/cible |
Résoudre les options (Obtenir ou Archiver) |
Résoudre les options (Fusionner) |
---|---|---|---|
Non applicable |
Non applicable |
Remplacer le fichier/dossier local Ignorer le conflit |
Non applicable |
|
|
|
Ignorer ces conflits (Indique qu'aucune action ne sera effectuée sur les conflits de ce type.) Il s'agit du paramètre défini par défaut. |
Remarque : |
---|
Vous ne pouvez pas utiliser la boîte de dialogue Résoudre les conflits sélectionnés pour résoudre des conflits de version dont la résolution requiert un outil de fusion. Cette boîte de dialogue ne contient pas l'option permettant de fusionner les modifications dans un outil de fusion. Si vous sélectionnez Fusionner les modifications pour moi et recherchez des conflits dans le contenu interne, vous ne pouvez pas non plus appeler l'outil de fusion. À la place, vous verrez s'afficher la boîte de dialogue Conflits non résolus, qui explique que vous devez résoudre certains fichiers individuellement. Si un seul fichier ne peut pas être résolu, la boîte de dialogue en indique le nom. S'il y a plusieurs fichiers non résolus, la boîte de dialogue indique le nombre de fichiers. |
Options de comparaison :
Type de conflit |
Modification de la source |
Options de comparaison (Obtenir ou Archiver) |
Options de comparaison (Fusionner) |
---|---|---|---|
Version |
Modifier Renommer Annuler la suppression |
Fichier local et fichier serveur Fichier local et fichier d'origine Fichier serveur et fichier d'origine |
Fichier source et fichier cible Fichier source et fichier de base Fichier cible et fichier de base |
|
|
Fichier local et fichier supprimé Fichier local et fichier d'origine Fichier supprimé et fichier d'origine |
Fichier source et fichier supprimé Fichier source et fichier de base Fichier supprimé et fichier de base |
|
Supprimer |
Fichier d'origine et fichier serveur |
Fichier supprimé et fichier cible |
|
|
Non applicable |
Non applicable |
Collision de nom de fichier |
Ajouter Brancher Renommer Annuler la suppression |
Fichier local et fichier serveur |
Fichier source et fichier cible |
Fichier accessible en écriture |
Non applicable |
Non applicable |
Non applicable |
Voir aussi
Tâches
Comment : résoudre les conflits entre deux fichiers
Comment : obtenir la source de votre projet d'équipe
Comment : archiver les modifications en attente