2010-10-11 21 views
12

alt textcomment fusionner deux changesets seulement (TFS)

Vous voyez 162489 et 162990, Comment puis-je les fusionner?

+2

On ne sait pas ce que vous voulez faire avec ces changesets. Voulez-vous seulement fusionner les changements dans ces changesets à une autre branche, hwile en ignorant tous les autres changements? – Robaticus

+0

Voir http://stackoverflow.com/a/22729936/67824 –

Répondre

23

Je suppose que vous souhaitez fusionner uniquement ces deux ensembles de modifications spécifiques dans une autre branche.

Vous ne pouvez pas fusionner plusieurs ensembles de modifications en une seule fois, sauf si les ensembles de modifications sont en séquence.

Utilisation de l'outil de ligne de commande tf vous spécifiez une plage de versions en séparant la version avec un tilde.

tf merge /recursive /version:C162489~C162990 "$/SourceBranch" "$/TargetBranch" 

Dans ce cas, les modifications 162987 et 162967 seront également incluses.

Si vous utilisez l'interface utilisateur dans Visual Studio, puis la boîte de dialogue de fusion vous empêchera de sélectionner plusieurs changesets individuels sauf si elles sont dans l'ordre.

Pour fusionner deux changesets séparés dans une autre branche, vous devrez le faire en deux étapes:
fusion 162489 puis 162990 (en commençant par la fusion la plus ancienne changeset si les deux contiennent des modifications changesets aux mêmes fichiers).

Ensuite, votre espace de travail pour la branche cible contiendra les changements pour les changesets et vous pouvez vérifier dans les fusions comme un changeset dans la branche cible.

+11

Un problème ici. Si vous fusionnez d'abord le 162489, vous NE POUVEZ PAS fusionner le 162990 à moins que vous ne le fassiez d'abord dans le 162489. –

2

La fusion doit être effectuée de manière successive. Dans votre cas, la fusion de deux changesets qui ne sont pas successifs n'est pas sûre car vous pouvez perdre les modifications qui pourraient être apportées aux mêmes fichiers. C'est pourquoi le client TFS ne vous autorise pas à le faire.

6

Essayez cette

tf merge /recursive /version:C162489~C162489 "$/SourceBranch" "$/TargetBranch" 
tf merge /recursive /version:C162990~C162990 "$/SourceBranch" "$/TargetBranch" 

Si vous ne disposez pas d'un changement de code des conflits dans ces changeset TFS 2010 va fusionner des fusions consécutives.

+2

Merci beaucoup! Je ne savais pas que si je veux fusionner une seule étagère, je dois aussi la spécifier en tant que plage (si je donne juste l'étagère, il semble fusionner les changements accumulés). –