2011-11-11 2 views
5

Nous avons rencontré un problème avec le fichier Fusionner à TFS2010. Jusqu'à présent, nous avons fusionné les fichiers d'une branche à l'autre sans problèmes (clic droit sur fichier -> Fusionner -> Choisir la branche cible et Fusionner les fichiers). Initialement, nous avons ajouté un nouveau fichier à la branche Développer, après avoir ajouté le même fichier à la branche principale. Après un certain temps, nous avons eu des changements de code sur la branche Développer et quand on essaie de faire Merge avec la branche Main, on ne voit pas la branche Cible (Main). J'ai deux questions concernant cette situation:TFS - Impossible de voir la branche cible lors de l'exécution du fichier Fusionner

  1. Est-ce un bon moyen pour 'télécharger' de nouveaux fichiers sur TFS. Ajouter séparément des fichiers dans les deux branches ou il y a une meilleure pratique où nous pourrions ajouter un nouveau fichier à la branche Développer et ensuite faire une copie de ce fichier à Main?

  2. Qu'est-ce qui peut justifier le masquage de la branche cible pendant l'opération de fusion?

Quand essayé de résoudre ce problème, j'ai trouvé quelques articles qui peuvent être utiles à quelqu'un d'autre, mais ne résout pas problème dans mon cas:

TFS not showing Dev branch in target locations for merging

How to merge new files into another branch in TFS?

http://revweblog.wordpress.com/2010/03/31/missing-target-branch-while-trying-to-merge-in-tfs-baseless-merge/

TnX à l'avance!

Nemanja

Répondre

2

Je pense que le cas, vous devriez regarder de plus près est this, c'est un cas où vous avez déjà mentionné.

À votre première question:
Non, votre méthode de validation de nouveaux fichiers plusieurs fois n'est pas optimale.
Ajout d'un nouveau fichier dans le contrôle de la source (n'importe quel contrôle de source) plus d'une fois, n'a pas de sens. A votre deuxième question:
La raison derrière ce comportement a été expliquée par AakashM dans la publication ci-dessus: "Dans TFS, l'unité de changement est le changeset, et ce sont les changesets (pas les fichiers) qui sont enregistrés et Dans la version (numéro de changeset) dans laquelle se trouve la branche cible, ce fichier n'existe tout simplement pas, donc il n'y a rien à fusionner. " La bonne façon d'opérer est d'ajouter de nouveaux fichiers dans votre branche 'Développement', puis de les fusionner dans votre branche 'Main'.
Cela ne sera pas possible si vous faites un clic droit sur le fichier nouvellement ajouté & choisissez "Fusionner" (aucune branche cible ne sera présentée). Cela sera présenté si vous le faites dans le dossier contenant le (s) nouveau (x) fichier (s).

+0

TnX pantelif! Cela a résolu notre problème. Nous n'avons pas pu fusionner de nouveaux fichiers parce que nous essayions de le faire avec un clic droit sur le fichier au lieu de la branche. Maintenant nous avons une situation où les changesets précédents, avec des fichiers qui étaient 'nouveaux' à ce moment, sont montrés dans la liste 'Selected changesets', mais nous ne pouvons pas les fusionner à nouveau et les changements d'enregistrement, parce que nous avions de nouveaux check-ins et modifications ces fichiers après les changesets initiaux. Comment pouvons-nous «nettoyer» ces informations, c'est-à-dire comment nous ne pouvons voir que des changements, par exemple, à partir de ce moment? –

+0

Lorsque vous essayez maintenant de fusionner de la source à la branche cible, TFS ne se plaint-il pas d'un conflit?Si vous choisissez de prendre la version "Cible" dans l'onglet "Conflit", cela devrait régler le problème une fois pour toutes. – pantelif

0

J'ai eu ce problème, quand pour la branche principale je n'ai pas eu le dernier code. J'ai pris le dernier code dans la branche principale, puis j'ai essayé de fusionner avec la branche de développement et cela a fonctionné.

Questions connexes