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

Autres ressources

Résolution des différences de dossiers et des conflits de fichiers (contrôle de version Team Foundation)