Repo Branching and Organization Question

We’re about to begin the process of re-styling our very old Classic ASP site to a more modern look and I was curious about a branching strategy, since we’ll still need to maintain the existing code in Production until the re-style project is completed.

In the past, we’ve mainly used SVN, so I’m not very familar with Git and wanted to get some input on how we should handle this project.

Based on an article I read, it indicated we should use  master  for the main re-style project, then create a maint branch to support the current Production release.

Using the above strategy, it seems that any changes made to the maint branch would then be merged upstream into master.

That article also indicated having a next branch as a testing branch for topics/features being tested for stability for master. It also mentioned a pu branch for proposed updates. I don’t think we need either of these do we?

If none of this is correct, I’m open to input on the best way to proceed.

Thanks,

Chris

Given the branch names you mention, I see you have read an article about how git itself is developed. The branching model used by the git development team is far from the only strategy to use, and I don’t think it fits very well in your use case.

I think you can stick to just maint and master, and maybe cherry-pick things from maint into master where they make sense. Fully merging maint into master will probably not make sense at all in your case.

1 Like

Yes, that’s the article I read. :smiley:

We’re a realtively small team, with some members off-shore, and I’m just wanting to setup a better and easier Git workflow on this new project compared to what we have on another project, which is basically does everything on master.

Currently, we use Stash/Bitbucket for our repos. I created a master branch for this new project and was attempting to create a new maint branch, but I am sure which branch type to choose. The options are:

  • Bugfix - Typically used for fixing bugs against a release branch
  • Feature - Used for specific feature work. Typically, this branches from and merges back into the development branch
  • Hotfix - Typically used to quickly fix the production branch
  • Release - Used for release tasks and long-term maintenance. Typically, this branches from the development branch and changes are merged back into the development branch
  • Custom

Do you have a recommendation?

I don’t use stash, but a the description of a release branch sounds sensible here. At the git level, all branches are equal, so it’s only in stash’s interface that they behave differently I guess.