2010-07-02 6 views
0

Je suis passé de Subversion à Microsoft Team Foundation Server pour le contrôle de version, et je crois comprendre que vous ne pouvez pas fusionner des jeux de modifications discontinus dans TFS.Fusionner des changesets discontinus dans TFS 2008 Version Control?

Par exemple, je dispose d'un fichier appelé « baseline.txt » qui ressemble à ceci:

line one 

Ensuite, je ramifient le fichier dans un nouveau fichier appelé « branch.txt », puis faire deux sur les check-in « baseline.txt » afin qu'il ressemble finalement à ceci:

line one 
line two //checked-in change-set A 
line three //checked in change-set B 

maintenant, je veux fusionner seul changement B-ensemble dans « branch.txt ». En d'autres termes, je pense « branch.txt » pour ressembler à ceci après la fusion:

line one 
line three //checked in change-set B 

Fondamentalement, je veux sauter changement ensemble A et B. changement de fusion ensemble Il est possible dans Subversion, mais dans TFS si je veux obtenir changeset-B, je dois également obtenir tous les changements-up "jusqu'à" B. B.

Est-ce vrai? C'est ce que montrent mes expériences, mais "Understanding ChangeSets and Merge with Team Foundation Server" semble indiquer différemment.

+0

Je ne sais pas , mais [cette question sur les fondements sans fondement] (http://stackoverflow.com/questions/1437304/tfs-baseless-merge-on-specific-changesets) pourrait avoir la réponse que vous recherchez. –

Répondre

0

Cet article est déroutant, et je ne crois pas qu'il soit précis. Lorsque la deuxième modification est enregistrée, elle doit générer un conflit de fusion. À ce moment-là, vous devez résoudre le conflit dans l'une des trois façons suivantes:

  1. fusionner les modifications
  2. Ecraser avec le nouveau changeset ou
  3. Gardez l'ancien, et jeter les nouveaux changements.

Peu importe ce que, lorsque vous vous préparez à retourner à fusionner baseline.txt, vous disposez d'une version « point-in-time » du fichier que vous allez enregistrer.

+0

Robaticus, il n'y aurait aucun conflit généré dans cette séquence de check-ins. Le seul potentiel de conflit serait si une modification se produisait après le fichier branche.txt créé et avant que la fusion de Changeset B ne soit appliquée. –

+0

Je supposais que checkin 1 et checkin 2 étaient faits à partir de deux machines séparées. Dans ce cas, il y aurait un conflit de fusion qui devrait être traité. Je ne peux pas imaginer un scénario où les deux modifications pourraient être faites à partir de la même machine. – Robaticus

+0

L'autre conflit serait la fusion elle-même lors de la sélection de la version de Baseline.txt associée à Changeset B. En lisant ceci une seconde fois je pense que c'est le conflit auquel vous faites référence. Les 3 changsets (ajout initial, ligne 2 et ligne 3) utilisés pour créer le fichier baseline.txt n'incluent pas la résolution de conflit. –

Questions connexes