Question

Est-il possible de fusionner une branche qui n'est pas un parent direct ou de l'enfant dans TFS?Je soupçonne que la réponse est non car c'est ce que j'ai vécu lors de son utilisation.Cependant, il semble qu'à certains moments, il serait vraiment utile quand il y a des caractéristiques différentes en cours de traitement qui peut avoir différents cycles d'approbation (ie.disposent d'un peut être approuvés avant d'disposent de deux).Cela devient extrêmement difficile quand nous avons des branches de production où nous avons à la fusion de certaines fonctionnalités dans un précédent succursale afin de pouvoir le libérer avant la prochaine version complète.

Notre actuelle de la ramification de la stratégie est de développer dans le coffre (ou principale, comme nous l'appelons), et de créer une succursale à stabiliser et à la mise en production.Cette branche peut ensuite être utilisé pour créer des correctifs et d'autres choses tandis que la ligne principale peut diverger de fonctionnalités à venir.

Quelles sont les techniques qui peuvent être utilisés autrement pour atténuer un scénario comme celui décrit ci-dessus?

Était-ce utile?

La solution

Je suis d'accord avec Harpreet que vous souhaitez peut-être revoir la façon dont vous vous avez le programme d'installation vous ramification de la structure.Cependant si vous voulez vraiment effectuer ce type de fusion, vous pouvez par le biais de quelque chose qui s'appelle une fusion sans base.Il fonctionne de la tsf invite de commande,

Tf merge /baseless <<source path>> <<target path>> /recursive

Plus d'infos sur les fusions sans base peut être trouvé ici

Aussi, j'ai trouvé ce document très précieux lors de la construction de nos tsf de la ramification de la structure Microsoft Team Foundation Server Ramification D'Orientation

Autres conseils

tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch

Vous pouvez revoir votre ramification de la stratégie.Comment voulez-vous obtenir branches de la production?Êtes-vous à la fusion de l'ensemble du code à partir de branches de développement, de tests de régression, puis la création d'une branche de production pour des corrections?Ou êtes-vous développer sur le tronc, puis la création de branches de production afin de stabiliser et de libération?La deuxième façon de crée des problèmes du type que vous décrivez.Si vous utilisez la première approche -- le tronc est censé être seulement pour les choses qui ont été construits sur les branches testé et fusionne ensuite vous lancer dans ce beaucoup moins souvent.En vertu de cette approche si vous rencontrez toujours ce problème, il se peut que votre effort de développement est très grand et vous avez besoin d'un relativement complexe de la ramification de la stratégie avec des couches de ramification et de promotion.

Autant que je sache, vous pouvez le faire aussi longtemps que les branches ont été créés hors de la même origine du dossier.

  • trunk/
  • branches/ -/feature1 (des branches à partir du tronc) -/feature2 (des branches à partir du tronc)

Si vous faites cela, alors vous devriez être en mesure de fusionner entre feature1 et feature2 ainsi.

Si mon ramification/la fusion de l'expérience avec TFS me laisse voulant plus.Je souhaite que nous avons juste eu le SVN.

Oui, vous pouvez faire une fusion sans base, mais seulement à partir de la ligne de commande (tf.exe).

TFS vous permettra de fusionner avec une branche qui n'est pas un parent/enfant, ils sont appelés des fusions sans base.Voir ces liens:

À partir de MSDN

De la TSF de l'Équipe via le site CodePlex

En général, nous faire de grands ou de déstabilisation des changements sur une branche de développement.Si près d'une version majeure de l'un de nos produits près de toutes les modifications seront effectuées sur une branche.

Je suis loin d'être un TFS expert, mais je pense que vous pouvez fusionner les frères et sœurs, et je pense qu'il n'est pas sans fondement de fusion.

Nous avons bifurqué notre branche principale (le nom de la branche "principal") pour une entité (nom de la branche "fonction"), puis j'ai besoin d'un peu de travail dans une branche qui a aussi des ramifications de la branche principale (le nom de la branche "dev").Je considère la fonctionnalité et dev branches d'être frères et sœurs car ils étaient de la même mère.J'ai fusionné fonction de dev et tous les fichiers (14000) ont été marqués comme de fusion, certains ont été marqués comme " fusionner,modifier.Je ne pouvais pas annuler (visual studio serait tout simplement se bloquer), j'ai donc accepté la fusion.Puis j'ai fusionné dev principal, puis j'ai tiré principale de la fonctionnalité, et de nouveau 14000 fichiers ont été marqués pour la fusion.J'ai été vraiment bouleversé, et de peur que cela continue.

À ce stade, nous avons fait un projet de test.Nous avons mis en place principal, puis ramifiée dev et de la fonctionnalité de main.Nous avons répété les étapes ci-dessus avec les mêmes résultats.Une fois que nous avons terminé la fusion de main à la fonctionnalité, à toutes les futures fusions seulement montré que les fichiers modifiés.

Après notre petit test que j'ai terminé la fusion de la principale fonctionnalité.Et tout comme le test de notre fusionne maintenant d'afficher uniquement les fichiers modifiés.Nous pouvons aller dev de fonction, fonction principale, principale de dev, etc.

J'ai remarqué que quand ramification toutes les dates des fichiers ont été modifiés.Peut-être est-ce un problème?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top