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 :
|
/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)