TFS Comment ne de la fusion de travail?
J'ai une branche de version (RB, en commençant à C5) et un ensemble de modifications sur tronc (C10) que je veux maintenant pour rejoindre la RB.
Le fichier a des changements à C3 (commun aux deux), on en CS 7 sur RB, et un en C9 (le tronc) et un à C10). Ainsi, l'histoire de ma changé fichier ressemble à ceci:
RB: C5 -> C7
Trunk: C3 -> C9 -> C10
Quand j'ai fusion C10 de tronc de RB, je m'attends à voir une fenêtre de fusion en me montrant
C10 | C3 | C7
depuis C3 est l'ancêtre commun de révision et C10 et C7 sont les conseils de mes deux branches respectivement. Cependant, mon outil de fusion de me montre C10 | C9 | C7
.
Mon outil de fusion est configuré pour afficher %1(OriginalFile)|%3(BaseFile)|%2(Modified File)
, donc cela me dit TFS choisi C9 comme la révision de base.
C'est totalement inattendu et tout à fait contraire à la façon dont je suis habitué à des fusions de travail dans Mercurial ou Git. Ai-je quelque chose de mal ou est TFS essayer de me conduire de la noix avec la fusion?
Est-ce le défaut de TFS Fusion comportement? Si oui, pouvez-vous donner un aperçu de pourquoi ils ont choisi de mettre en œuvre cette façon?
Je suis d'utilisation de TFS 2008 avec VS2010 en tant que Client.
Hofman: C'est la même chose (à part le défaut de TFS utilitaire de fusion est de la merde), c'est donc définitivement unreleated à la fusion de l'outil utilisé.
Est-ce que vous (ou quelqu'un d'autre) capable de répondre à ma question?
Qui version de TFS?
TFS 2008. De l'utiliser avec Visual Studio 2010.
OriginalL'auteur Johannes Rudolph | 2011-02-14
Vous devez vous connecter pour publier un commentaire.
J'ai eu quelques initial similaire luttes avec TFS branchement et de fusion (Nous avons dev, de l'intégration, et les branches principales).
Version courte est que vous ne pouvez pas fusionner directement à partir d'une extrémité à un ancêtre commun.
Donc si C3 est ramifiée à C5, puis C7 est ramifiée à C9, ce que l'outil est de fournir de sens que dans le contexte de la façon dont TFS œuvres. Vous avez essentiellement besoin pour aller de C10/C9 à C7, puis à partir de C7 C3.
De mettre une manière différente, avec un exemple plus concret, voici comment nous manipuler multi-niveau de la ramification et de la fusion dans nos projets.
Nous commençons avec le tronc principal.
Nous avons ensuite direction d'une direction de l'intégration.
Nous avons ensuite (et c'est la clé) direction générale de l'intégration dans nos dev branches afin que nous puissions travailler sur les prochaines sorties.
Que des modifications sont faites dans une branche dev, nous avons d'abord inverse intégrer par la fusion de l'intégration de notre branche dev (afin de ramasser tous les autres changements). Nous avons ensuite avant d'intégrer en va de notre branche dev à la direction de l'intégration.
Une fois que l'intégration passe QA, nous reverse ensuite intégrer par la fusion du tronc de l'intégration (juste au cas où il y a des correctifs à main), puis vers l'avant d'intégrer tous les changements apportés dans l'intégration vers le bas à la main.
Le jour de la sortie, nous faisons une dernière branche de principal dans une nouvelle version de la branche qui nous déployer.
Fondamentalement, dans TFS, vous avez toujours à aller en haut et en bas de la ramification/la fusion de l'arbre de tronc de branche en branche à la feuille - vous ne pouvez, à tout moment, de contourner l'étape dans la direction de la hiérarchie.
Métaphoriquement, TSF de la branche et de l'opération de fusion est plus comme de la paresse grimper sur un arbre et lentement jusqu'à la fin d'une branche sans jamais les laisser perdre du grip et un singe saut entre les branches 😉
Prend un peu de temps pour s'y habituer, mais une fois fait (et en particulier une fois que vous êtes habitué à l'avant d'intégrer et d'inverser intégrer le paradigme), il fonctionne un régal, surtout quand vous avez plusieurs gens de toute action de développement et vous avez besoin d'envelopper de modifications de tout le monde sans avoir des choses quitta plus.
Espère que ça aide!
Ah maintenant je comprends votre exemple mieux! Je soupçonne que la raison pour laquelle vous voir C9 comme votre base à la place de C3 est parce que vous bifurqué à C5, et donc c'est comme s'il attrape le premier commis de la base de post-branch (C9). Je vais la tester sur un de mes serveurs TFS.
hmm... je suis allé et a fait un exemple de fichier de départ et répliquées votre scénario ci-dessus - et quand je suis allé à mettre dans mon deuxième changement (votre C10), j'ai vu mon fichier d'origine (votre C3) comme ma base, c'est pas mon C9 equivelant changer... donc il doit y avoir quelque chose d'autre. Pour mon propre bénéfice - vous commencé avec coffre, puis des branches à RB après Révision 3, et de l'ensemble de modifications 5 représente la première checkin dans RB?
oui, j'ai commencé avec coffre, puis des branches à RB après Révision 3 (cela a créé C5).
Le branchement et la fusion dans TFS est une maîtresse cruelle... quelque chose le long du chemin, doivent avoir réinitialiser où il pensait que la base était et la perte de la connexion à la C3 - je peux obtenir votre comportement souhaité, mais alors j'ai l'avantage de reproduire en laboratoire les conditions) votre arbre ci-dessus.
OriginalL'auteur Bob Palmer
je cherchais sur ce site avant de et suis tombé sur cette page, est-ce utile?
Comment la direction générale et de fusion dans TFS
OriginalL'auteur Jaanus
Je pense que vous pourrait ont une mauvaise fusion de la méthodologie, car ce que vous décrivez est tout à fait possible, et cela fonctionne pour moi. Mais vous devez toujours vous souvenir lorsque vous démarrez embranchement à partir de la branche principale est de faire le bon RI (Intégration Inverse), et FI (intégration). Avoir une recherche sur codeplex pour branchement de lignes directrices et de meilleures pratiques.
En substance, toutes les modifications qui est tombé de la branche principale doivent être RI serais de retour sur vos autres branches avant de les fusionner en arrière. C'est la meilleure pratique et fonctionne à chaque fois, après cela, vous pouvez continuer à FI de branche avec le tronc principal.
OriginalL'auteur Ryk