DEV Community


Discussion on: How to use git efficiently

havarem profile image
André Jacques

Pretty good. I have one question about a project with multiple version alive (like apache 2.0.x, 2.2.x and 2.4.x) that are developed concurrently.

  • I have the master branch that holds the latest stable version.
  • I have RC branches (or staging) for debug and delivery.
  • I have hot-fix branch that by-pass directly from master.
  • I have my dev branch with all the stories that has been completed with unit test passing (usually) and
  • feature and bug-fix branches.

What strategy should be implemented in a case like Apache HTTPd server, where 3 main versions are maintained? Should we use 3 different repositories, or should we have three master branch (master20, master22 and master24 for exemple?). Is there other options?

adityasridhar profile image
Aditya Sridhar Author

Interesting question.

Never worked on any project with multiple active versions.

I am guessing if the development is concurrent on all the versions, and if the versions have different features then its better to have separate repos for them like angularjs and angular.

Again, never worked on projects with multiple active version. It's better if someone who has actually worked on this answers :D

rbukovansky profile image
Richard Bukovansky

Well, 3 repos if you don't trust your developers they will create their feature/bugfix branches from correct develop branch, and code lieutenants responsible for accepting PRs or merging from and to correct branches.

Otherwise with git-flow and if you develop new features to all those releases, you will need to have 6 branches (master2_0 => develop2_0, master2_2 => develop2_2, master2_4 => develop2_4). Actually, if you want develop new "main" version, you will end up with 8 branches, with additional branches like master-next and develop-next, where you develop new features which are going to next main release, like 2.6.

If you just maintaining those master2_2 and master2_4 branches for security fixes, you should be OK with just master2_2 and master2_4 without develop2_2 and develop2_4 branches and with classic git-flow hotfix branches.

havarem profile image
André Jacques

That was basically my concern with one repo, it felt really troublesome for not many advantages. It seems for me that 3 repos are the way to go. The repo is cleaner, less confusing.