We use the branch-per-release model of development with Subversion. We tend to have 2 or 3 active branches at a time - trunk (development), and two release (maintenance) branches (i.e. 5.0 and 6.0).
The problem we keep running into is that if we find a bug in 5.0 and fix it in 5.0, not everyone always remembers to merge their fixes into all branches into which the bugfix needs to be merged (6.0 and trunk i开发者_StackOverflow中文版n this case).
How do you make sure bug fixes are merged into all necessary branches? What is a good way of going about this?
The best way is probably just communication and education. Have team meetings - make sure that all of your developers are on the same page. We have a similar SVN structure, and whenever I fix a bug, the first thing I ask myself after committing is, "where else does this need to be merged?" - it's just been hammered into my mind through communication and repetition.
Put the list of branches getting merged bugs on a wiki page or other public document so that it's easily findable by all developers.
Do you have dedicated testers? It should be the testers' responsibility to verify that "fixed" really means "fixed in the 5.0 and 6.0 development trees".
Continuous integration could help as well, using 'common' tests for development and maintenance trees.
精彩评论