Version Control Workflows
This chapter explains version control workflows. Codebeamer supports the following workflows:
Centralized Workflow
A very common workflow (Subversion, CVS and CM Synergy support only this workflow), especially for people transitioning from a centralized system, is a centralized workflow. A Distributed Version Control System (DVCS) does not allow you to push if someone has pushed since the last time you fetched, so a centralized model where all developers push to the same server works fine.
Distributed Workflows
The advantage of a Distributed VCSs for exmple, Git and Mercurial, is that because of their distributed nature and super branching system, you can implement any workflow you want. The following sections discuss the Distributed Workflows:
Integration Manager Workflow
Another common workflow is where there is an integration manager: that is, a single person who commits to the 'blessed' repository. There are a number of developers who clone from that repository, push to their own independent repositories and ask the integrator to pull in their changes. This is the type of development model you often see with open source or GitHub repositories.
Codebeamer makes it very easy to implement in the Integration Manager Workflow. Read the Integration Manager Workflows & Pull Requests with Git and Mercurial for details.
Dictator and Lieutenants Workflow
For more massive projects, you can set up your developers similarly to the way the Linux kernel is run. Certain people are in charge of a specific subsystem of the project (lieutenants) and they merge in all changes that have to do with that subsystem. Then another integrator (the dictator) can pull changes from only his/her lieutenants and then push to the blessed repository that everyone then clones again.
Git allows you to mix and match and choose the work-flow that is right for you.
The pictures on this page are from Why Git is Better Than X and have been used with their permissions.
Was this helpful?