Branching strategy for git

Geert Janssens janssens-geert at telenet.be
Thu Mar 27 05:13:54 EDT 2014


On Saturday 22 March 2014 18:39:13 John Ralls wrote:
> On Mar 22, 2014, at 4:01 PM, Geert Janssens <janssens-geert at telenet.be> wrote:
> > I like the workflow as proposed in the git workflows man page
> > (section Branch management for a release and following). They
> > propose a long-term maintenance branch. Only when a new feature
> > release is done, a separate maintenance branch for the previous
> > stable series is created. So when 2.8.0 gets tagged, the current
> > head of stable is branched off into stable-2.6. Then stable is fast
> > forwarded to the 2.8.0 release tag.
> 
> It won’t quite fast-forward because of ChangeLog and NEWS, but those
> are minor issues; the releaser can just resolve to the new version.

Zooming in on this issue:

If I understand the release process well NEWS is hand-written (based on a preformatted log 
since previous release) and Changelog is autogenerated from the git log.

Looking at both files I see that NEWS groups changes per version while Changelog just lists 
changes by date.

Let's assume we're in the current situation: 2.8.0 has been released and there are a couple of 
bug fixes that will appear in both 2.6.x and 2.8.1. What should come in the NEWS file ?
For the 2.6.x release there should be a section listing the changes in 2.6.x. For the 2.8.1 release 
I would expect both a section for 2.6.x (assuming this gets released right before 2.8.1) and one 
for 2.8.1.

I'll note that this didn't happen for 2.4.x and 2.6. From the first 2.5.x release the NEWS file on 
trunk wasn't updated with 2.4.x releases anymore. That looks like a flaw in our release 
infrastructure that didn't get noticed because of the weak merging capabilities of svn.

With git this can be handled better because if we merge the 2.6.x release changes upwards 
that would bring in the 2.6.x release section. It may cause a merge conflict but at least we're 
informed there is a new section to add. I'm not even sure this would create a merge conflict 
because the existing news sections don't change. Only a new one gets added. The only way to 
be sure is to test.

Changelog may be more difficult though we'll have to run a test to be sure. The main question 
for me here is whether or not our code to generate the Changelog file can properly handle 
multi-parent commits ? This is important to generate log entries for the changes from upwards 
merged bugfixes into master.
If it does, then merge conflicts when merging maint into master can always be resolved in 
favour of the Changelog file on master.

Geert


More information about the gnucash-devel mailing list