Partager via


Merge, commande

Mise à jour : novembre 2007

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

Remarque :

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

Autorisations requises

Pour être en mesure d'utiliser la commandemerge, vous devez bénéficier de l'autorisation Extraire pour le dossier de l'espace de travail contenant la destination ou cible de l'opération de fusion. Vous devez également posséder l'autorisation Lire pour le dossier de l'espace de travail contenant 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] source destination

Paramètres

Argument

Description

versionspec

Spécifie 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 (Team System).

source

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

Destination

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

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 au sein de la destination ou cible. 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 essayez 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 supprime tout verrou existant d'un élément.

  • 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.

/nosummary

Omet le résumé des erreurs et des avertissements lorsque cela nécessiterait plus de 10 lignes de sortie.

/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.

/noprompt

Supprime les invites de saisie.

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 cible 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 cible 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 tfmerge. 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. Après avoir 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 tfmerge, 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 ne fusionne que les modifications de l'ensemble de modifications 137 dans branch2.

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

L'exemple suivant fusionne tous les ensembles de modifications du premier ensemble de modifications à l'ensemble de modifications 137 inclus, à partir de branch1.

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

L'exemple suivant fusionne toutes les modifications de l'ensemble de modifications 100 à l'ensemble de modifications 137 inclus.

c:\projects>tf merge /version:C100~137 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

Procédure pas à pas : fonctionnalités avancées du contrôle de version

Comment : résoudre les conflits entre deux fichiers

Concepts

Comprendre la notion de branches

Référence

Syntaxe de ligne de commande (Team System)

Branch, commande

Merges, commande

Autres ressources

Commandes de l'utilitaire en ligne de commande Tf