This project has moved and is read-only. For the latest updates, please go here.

Suggestion to alter some recommendation in Feature Branch Model with Integration Line Branch

Mar 8, 2014 at 6:06 AM

While I was going through the Feature Branch model in your 'Branching and Merging Guide', it perfectly fitted with what currently we are practicing with a continuously changing Product (Retail ERP) where multiple features are being developed in parallel. My only request would be to suggest the following in the documentation (Branching Guide) -
  • The Integration Branch (in Feature Branching model) should exist for developer testing and integration of features at development level before releasing to Quality/Testing team
  • The Main branch would the Quality/Testing branch which the Quality/Testing people will use as their Test Build source.
Why I suggest not to allow Quality/Testing people to test on the Integration branch is that it will keep the branch 'in use' while the tests are being performed as they might need to do a 'get' several times during their test cycles. So while the Integration branch is 'in use' by testers, the same cannot be used by Developers for their integration testing.

However, if we reverse integrate to MAIN once developer testing is done on Integration Branch, then the Integration Branch becomes free for developers. The stability of MAIN is not also greatly disturbed as a set of integration testing by developers have already been performed before RI to MAIN. The MAIN can thereafter be used by Quality/Testing people in any way they want.

As an additional benefit, during subsequent releases to Quality/Testing team, the Development Leader (Owner of Integration Branch) also has the option of doing a DIFF of MAIN and Integration Branch in case he wants to verify the changes between last changes committed to Quality/Testing team and current changes being committed to Quality/Testing team.

Once MAIN is tested and staibilised after a full cycle Test, we can cut out a RELEASE branch (which we do, but not necessarily everybody will require) and store it for future support on that version.

Hope I was able to clarify myself. Any suggestions would be greatly appreciated.


Rajarshi Basu Roy
Development Manager - GINESYS