I read lot on this subject (Techdays, videos, etc.), on my project apply this strategy, it's recommended as best practise.
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
- 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 ...
Remark : on my blog i writted post