2010-03-15 3 views
1

Je sais que fusionner des changesets non-contigus à la fois peut ne pas être une bonne idée. Cependant, il y a au moins une situation dans laquelle fusionner des changesets non contigus ne va (probablement) rien casser: lorsqu'il n'y a pas de changements intervenant sur les fichiers individuels affectés. (Au moins, ça ne casserait pas plus mal que ne le serait une série de fusions cherchées, vérifiées à chaque fois, et au moins de cette façon vous découvrirez la casse avant de vous enregistrer). Par exemple, disons que vous avez une branche principale et une branche Développement. Par exemple, Ils partent identiques (par exemple après une libération). Ils ont deux fichiers, foo.cs et bar.cs.Est-ce que TFS 2010 prend en charge la fusion non contiguë?

Alice apporte une modification dans Development \ foo.cs et la vérifie en tant que changeset # 1001. Bob apporte une modification dans Développement \ bar.cs et le vérifie en tant que # 1002. Alice apporte une autre modification à Développement \ foo.cs et la vérifie en tant que # 1003.

Maintenant, nous pourrions théoriquement fusionner les deux changements # 1001 et # 1003 de dev-to main en une seule opération. Si nous essayons de fusionner au niveau de la branche, dev-to-main, nous devrons le faire comme deux opérations. Dans cet exemple simple et artificiel, il est assez simple de fusionner le fichier - mais dans le monde réel où il y aurait beaucoup de fichiers impliqués, ce n'est pas si simple.

La fusion non contiguë est l'une des raisons données pour expliquer pourquoi "fusionner par workitem" n'est pas implémenté dans TFS.

Répondre

2

TFS 2008 a ajouté la possibilité à d'étendre la plage d'une fusion déjà en attente. Autrement dit, vous pouvez faire:

tf merge $/dev/foo.cs $/main/foo.cs -version:~1001 
tf merge $/dev/foo.cs $/main/foo.cs -version:~1003 
tf checkin 

De plus, vous avez toujours eu la possibilité de Pend plusieurs fusions qui ne touchent pas les mêmes fichiers.

tf merge $/dev/foo.cs $/main/foo.cs 
tf merge $/dev/bar.cs $/main/bar.cs 
tf checkin 

Mais au-delà - non, 2010 ne pas ajouter de nouvelles capacités à cet égard. Ma première séquence de commandes serait toujours bloquée s'il y avait des conflits intermédiaires.

+0

J'ai écrit un programme d'API TFS pour le faire - mais c'est ... difficile à obtenir. J'espérais que les gens officiels de Microsoft le feraient pour moi. :) Merci pour le commentaire – stannius

Questions connexes