Merge, commande

La commande merge applique les modifications d'une branche à un autre.

Notes

Les résultats de cette commande ne sont pas reflétés au niveau du serveur de contrôle de version Team Foundation tant que vous n'avez pas effectué d'opération d'archivage. Pour plus d'informations, consultez Archiver des modifications en attente.

Autorisations requises

Pour utiliser la commande merge, vous devez avoir l'autorisation Extraire définie sur Autoriser pour le dossier espace de travail qui contient la destination et l'autorisation Lire définie sur Autoriser pour le dossier espace de travail qui contient la source. Pour plus d'informations, consultez Autorisations de Team Foundation Server.

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

Paramètres

Argument

Description

versionspec

Fournit une valeur, telle que C2, pour l'option /version. Pour plus d'informations sur la façon dont Team Foundation analyse une spécification de version afin de déterminer quels éléments se trouvent dans sa portée, consultez Syntaxe de ligne de commande (Contrôle de version).

source

Spécifie le fichier ou dossier qui servira de source pour la fusion.

destination

Spécifie le fichier ou dossier qui servira de destination pour la fusion.

username

Fournit une valeur pour l'option /login. Vous pouvez spécifier une valeur de nom d'utilisateur comme DOMAINE\NomUtilisateur ou NomUtilisateur.

Option

Description

/recursive

Correspond à la spécification de l'élément source dans le répertoire actif et tous ses sous-dossiers.

/force

Ignore l'historique de fusion et fusionne les modifications spécifiées depuis la source vers la destination, même si certaines de ces modifications, ou toutes, ont été fusionnées auparavant.

/candidate

Affiche une liste de tous les ensembles de modifications de la source n'ayant pas encore été fusionnés dans la destination. La liste doit inclure l'ID d'ensemble de modifications qui n'a pas été fusionné, ainsi que d'autres informations de base le concernant.

/discard

N'exécute pas l'opération de fusion, mais met à jour l'historique de fusion pour garder trace de la fusion. Annule l'utilisation d'un ensemble de modifications pour une fusion particulière.

/version

Pour une fusion sélective, cette option spécifie la plage qui doit être fusionnée dans la destination. Pour une fusion de rattrapage, ce paramètre spécifie la version avant laquelle toutes les modifications non fusionnées doivent être fusionnées.

Pour une fusion sélective, la plage de versions représente les points de début et de fin de l'ensemble de modifications à fusionner. Par exemple, si vous tentez de fusionner la version 4~6, les ensembles de modifications 4, 5 et 6 sont fusionnés.

/lock

Spécifie un type de verrou ou supprime un verrou d'un élément. Pour plus d'informations, consultez Présentation des types de verrous.

Options de verrouillage :

  • Aucun

    Aucun verrou n'est placé sur un élément et tout verrou existant sur un élément est supprimé.

  • Archivage

    Les autres utilisateurs peuvent extraire les éléments spécifiés mais ne peuvent pas archiver les révisions apportées aux fichiers verrouillés tant que vous n'avez pas libéré le verrou en effectuant un archivage. Si un autre utilisateur a verrouillé l'un des éléments spécifiés, l'opération de verrouillage échoue.

  • Extraction

    Empêche les utilisateurs d'archiver ou d'extraire l'un des éléments spécifiés tant que vous n'avez pas explicitement libéré le verrou. Si d'autres utilisateurs ont verrouillé l'un des éléments spécifiés, ou s'il existe des modifications en attente concernant l'un des éléments, l'opération de verrouillage échoue.

/preview

Affiche un aperçu de la fusion.

/baseless

Effectue une fusion sans version de base. Autrement dit, permet à l'utilisateur de fusionner des fichiers et des dossiers qui n'ont pas de relation de fusion. Après une fusion sans base, une relation de fusion est créée et les futures fusions ne doivent pas être sans base.

RemarqueRemarque
Les fusions sans base ne peuvent pas supprimer des fichiers dans la cible.Vous pouvez reporter manuellement ces modifications.

/noimplicitbaseless

Spécifie que Team Foundation n'effectuera pas de fusion sans base implicite entre deux éléments qui ont le même nom relatif dans deux arborescences de contrôle de version non liées.

/nosummary

Omet le résumé des conflits, des erreurs et des avertissements.

/noprompt

Supprime les invites de saisie.

/conservative

Produit plus de conflits quand vous fusionnez une branche avec une autre.

/format

Spécifie les formats de synthèse des conflits de fusion :

  • Brief : la valeur par défaut, résume seulement le nombre total de conflits, d'avertissements et d'erreurs.

  • Detailed : résume non seulement le nombre total de conflits, d'avertissements, et d'erreurs, mais répertorie également les détails sur chaque conflit.

Remarque   Cette option s'applique uniquement lorsque la sortie contient un résumé des conflits. Le résumé ne peut pas être indiqué si l'option /nosummary est utilisée ou la fusion a provoqué moins de 10 conflits, avertissements et erreurs.

/login

Spécifie le nom d'utilisateur et le mot de passe pour authentifier l'utilisateur avec Visual Studio Team Foundation Server.

Notes

Vous pouvez utiliser la commande merge de l'utilitaire en ligne de commande tf pour appliquer les modifications d'une branche source existante à une branche cible existante. Vous pouvez fusionner une révision individuelle ou un ensemble de modifications complet dans la branche cible. Vous pouvez fusionner les modifications de la branche source vers la branche cible ou de la branche de destination vers la branche source.

La commande merge vous permet également de demander quelles sont les modifications d'une branche source n'ayant pas encore effectué de migration vers la branche cible. Elle vous permet en outre d'indiquer que certaines modifications ne seront jamais fusionnées de la source vers la destination et qu'elles ne doivent plus apparaître comme candidates à une opération de fusion.

Pour plus d'informations sur la localisation de l'utilitaire en ligne de commande tf, consultez Commandes de l'utilitaire en ligne de commande Tf.

Fusion sans base

Utilisez la fusion sans base pour fusionner des éléments qui ne sont pas directement reliés les uns aux autres par une branche. Pour effectuer une fusion sans base, vous devez utiliser la commande tf merge. Lorsque vous effectuez une fusion sans base, Team Foundation n'a pas d'informations concernant la relation des fichiers dans les branches. Dans une fusion sans base, vous devez résoudre les conflits manuellement. Dès que vous avez effectué la fusion sans base et résolu tous les conflits éventuels, Team Foundation enregistre l'historique des fusions et établit une relation entre les dossiers et les fichiers.

Lorsque vous exécutez tf merge, Team Foundation effectue une fusion sans base implicite entre les éléments qui ont le même nom relatif dans deux arborescences contrôlées par version précédemment liées. Par exemple, vous pouvez fusionner les branches liées $SRC\ et $TGT. Ces deux branches contiennent un fichier non lié nommé a.txt. Lorsque vous exécutez tf merge, Team Foundation établit une relation entre les deux fichiers a.txt si ceux-ci sont identiques, si le chiffrement conforme à FIPS est désactivé et si le fichier source n'est lié à aucun autre fichier dans la cible.

Si vous exécutez tf merge alors que l'option /noimplicitbaseless est définie, puis Team Foundation essaie de fusionner les deux branches, les deux fichiers a.txt créent un conflit d'espace de noms lorsque vous essayez d'archiver les modifications. Pour résoudre le conflit, vous devez renommer un des fichiers.

Exemples

L'exemple suivant fusionne les modifications de MonFichier_beta1 qui n'ont pas été fusionnées dans MonFichier_RTM.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

L'exemple suivant fusionne l'ensemble de modifications 137 de la branche 2.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

L'exemple suivant fusionne tous les ensembles de modifications jusqu'à l'ensemble de modifications 137 de la branche 2.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

L'exemple suivant affiche une liste des ensembles de modifications de branch1 n'ayant pas été fusionnés au sein de branch2.

c:\projects>tf merge /candidate branch1 branch2 /recursive

L'exemple suivant affiche une liste des ensembles de modifications de branch2 n'ayant pas été refusionnées vers branch1.

c:\projects>tf merge /candidate branch2 branch1 /recursive

L'exemple suivant ignore l'ensemble de modifications 137 comme candidat à la fusion vers branch2.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive

Voir aussi

Tâches

Résoudre les conflits entre deux fichiers

Référence

Syntaxe de ligne de commande (Contrôle de version)

Branch, commande

Merges, commande

Autres ressources

Commandes de l'utilitaire en ligne de commande Tf

Création de branches et fusion