1

We have an application which has multiple active versions and we have some customers using older version and some using the newer version. They share lot of common code. What is the best way to branch this out in TFS? Should we create separate folders for each version in the Dev branch (and do the same in Main)? Problem with this approach is that if we make some change in V1 and need to merge that into V2, that can't be done using the tool. The code needs to be copied manually into V2. What is the suitable branching strategy for this scenario?

We have another project in which we are working on the very first version of the app and the development is completed for that and the testing is in progress and while the testing is in progress, we want to start working on the next version and in the meantime if we fix any bugs in V1, we want to merge those changes in next version too. How can this be done in TFS? what is the right branching strategy for this scenario? Thanks in advance.

RKP
  • 5,285
  • 22
  • 70
  • 111

1 Answers1

0

You have best practise in order to manage branch, strategy branching based on Trunc X.Y.Z, Service Pack, Fix & Release.

The implementation requires performing the following tasks:

1 . Create a truncated development , trunk reads XYZ

Note: developments are not directly on the trunk, but are about a girl called Service Pack branch .

2 . Create from the trunk a new child branch service pack, language 1.YZ

Note: This branch will host the first dedicated development functionality.

Event Project: End of first iteration ( The development team believes that the developments are completed).

3 . Create from Service Pack 1.YZ a new child branch Fix denominated 1.0.Z.

Note: This branch contains all developments dedicated to future bug fixes following the delivery of the target feature.

4 . Create from Fix 1.0.Z. a new child branch Release denominated 1.0.0 .

Note:

  • This branch will remain read-only.

  • This branch is the only branch deployed in a production environment .

  • This branch is a picture of our delivery.

  • It allows you to draw different deliveries made .

  • It allows to perform operations on the Rollback version if the need arises ( Avoid conflicts file version ) .

Event Project : Delivery of production

  1. Deliver Release 1.0.0 branch on the production environment .

6 . Merge Service Pack 1.Y.Z to X.Y.Z trunk

Note : At this point all branches are at the same level of evolution .

Event Project: bug occurs on the Release 1.0.0

7 . The treatment of bugs can be done in two ways as possible :

■ If it is determined that the version is not stable Carry - on patches Fix branch 1.0.Z.

  • Create a new branch Release 1.0.1

  • Deliver the branch Release 1.0.1

  • Merge Fix 1.0.Z to Service Pack 1.Y.Z.

  • Merge Service Pack 1.Y.Z. to trunk X.Y.Z.

    Note: You can iterate many times : 1.0,1 , 1.0.2 , 1.0.3 etc. .

■ If it is determined that the version is stable and we decided to fix bugs on a new delivery. - Create from Service Pack 1.Y.Z. Fix a new child branch 1.1.Z

  • Make corrections on Fix branch 1.1.Z

  • Create from Fix 1.1.Z. a new child branch Release denominated 1.1.0 .

  • Deliver the 1.1.0 branch

    Event Project: An important new feature comes

8 . Create from the trunk a new child branch service pack, language 2.YZ

Reproduce the same organization ...

Aghilas Yakoub
  • 28,516
  • 5
  • 46
  • 51