Saturday, July 16, 2011

My Branching and Merging Strategy

Hi,
I would to share with you my way to the best practices for development version management
we always have to keep an isolated environment that is equal to the production environment because we want to keep the ability to make patches to the production environment while the other developers are working on the development iteration

my way is based on two important rules:
  1. Production environment must be equal to the main development environment for enabling production bug fixes over the iteration development

  2. The iteration development will be only in the branch development environment


I'll explain it by a simple scenario as yo can see in the chart below:

chart


legend
So, the scenario is:
1. create a branch development version from the main development version, this action occurred only once
2. in case that you have to fix a minor bug and to update the patch to the production environment, take it from the main development version
3. when the development iteration is over, we have to make merge from the main development version to the branch development version because of the production patch
4. we can update the production environment from the branch development version
5. after the version update we have to make merge from the branch development version to the main development version because we have to keep the main development version equal to the production environment

from this step we have to repeat steps 2-5 for each development iteration

one important tip:
when making the branch action, don't overwrite the configuration files, keep the target version

No comments: