4

Is there any good internet resource describing different practices for merging/branching regardless of source control tool?

This should treat version to customers, development of features, bug fixers etc.

ipd
  • 5,674
  • 3
  • 34
  • 49
dimba
  • 26,717
  • 34
  • 141
  • 196
  • You might be interested in reading the blog: [Project Branch & Merge](http://version-control.net/2011/05/06/project-branch-merge/) – Windy Jun 30 '11 at 07:00

2 Answers2

3

A good reference (that I mention in "When should you branch") is:

Chapter 7 of "How Software Evolves" (pdf)

From Practical Perforce (Laura WINGERD - O'Reilly): it is a good introduction (VCS agnostic) to merge workflow between different kind of branches.

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
1

A very good question. I've had the same interest in how best to use 'git'. So far, the best working solution we use is to put bug fixes on 'hotfix' branches from the oldest supported version then merge those into later and finally the 'master' branch. For new features, develop them on separate branches, merging 'master' into the feature branches to keep them up to date, and when it's time to release the feature, merge the 'feature' branch into 'master.

karmakaze
  • 34,689
  • 1
  • 30
  • 32
  • Let me see if I'm understand you correctly. You release to customer in the first time from 'master'. If bug is discovered a 'hotfix' brabch will be created, so from now and on the customer will receive builds from 'hotfix' branch. – dimba May 31 '11 at 05:30
  • Yes we number the hotfix branches with the release version e.g. hotfix-1.22 and make release tags 1.22 for the initial release and 1.22.1 1.22.2 etc for updates. One nice thing is we can expire old branches since we're using JavaWebStart or applets. – karmakaze May 31 '11 at 11:55
  • In your case if you had customers with current versions 1.17.6 and 1.22.3 you can put a bug fix on branch hotfix-1.17 which is already at tag 1.17.6 from before merge it into hotfix-1.22 which was already at tag 1.22.3 then merge that into master. Btw, we call the hotfix branches to resis the temptation to add creatures on them. For new features get a newer version released off master. Also we release early beta off master e.g. 1.23 and the first non-beta release might be 1.23.1 – karmakaze May 31 '11 at 11:59