web-dev-qa-db-fra.com

Comment créer des branches et fusionner dans TFS

Cette question est dérivée d'une question précédente: Comment faire la version des ressources partagées entre les projets

J'ai un projet qui contient du code consommé par de nombreux autres projets. Plus précisément, un dossier de ce projet parent a été ramifié vers des projets enfants dépendants.

Nous avons depuis apporté des modifications dans le projet parent et les avons archivées. Dans l'Explorateur de contrôle de code source, je clique avec le bouton droit sur le dossier ramifié dans le projet parent et sélectionne "Fusionner", avec l'intention de pousser les modifications vers un projet dépendant. Je sélectionne le projet enfant comme destination, puis je sélectionne "Dernière version". L'assistant m'informe "Il n'y a aucun changement à fusionner."

De mon point de vue, ce n'est pas vrai, car les fichiers récemment mis à jour sont clairement différents.

Y a-t-il ici une incompréhension fondamentale du processus de fusion dans TFS? Que dois-je faire différemment?

23
betitall

Le moteur de fusion TFS repose presque entièrement sur l'historique, pas sur le contenu des fichiers. Cela le rend efficace pour les très grands arbres et flexible pour les tâches telles que les changements de cueillette en toute sécurité - mais cela rend également difficile de répondre à votre question.

La première étape consiste à comprendre les commandes de diagnostic tf history, tf merges , et tf merge/candidate . Voici une bonne introduction: http://blogs.msdn.com/dstfs/archive/2009/04/15/a-note-on-merging-and-the-use-of-tf-merges- tf-merge.aspx

Si vous êtes nouveau dans la branche et la fusion dans TFS, votre historique n'est probablement pas très complexe. Je pense qu'il est probable que vous trouverez votre réponse avec un appel rapide à fusion tf . Cependant, le suivi de l'historique des fusions peut devenir extrêmement compliqué dans le cas général, donc si vous rencontrez des problèmes, n'hésitez pas à publier plus de détails.

17
Richard Berg

Accédez à un fichier spécifique que vous savez avoir changé dans votre projet "parent". Essayez de fusionner uniquement ce fichier. N'enregistrez rien; voyez ce qui se passe.

À surveiller: les outils de fusion n'incluront pas les fichiers qui ont été ajoutés après la branche. Vous devez créer des branches de nouveaux fichiers explicitement avant de pouvoir fusionner d'autres modifications. Si un fichier est ajouté aux dossiers parent et enfant sans utiliser une opération de branche, les outils de fusion ne les traitent pas comme des versions du même fichier (et vous ne pouvez pas fusionner les modifications entre eux).

2
Robert Lewis