Another graph for another friend who asked for a flow chart of the
branching and merging described in Best Practices for Web Development
Update: > Michael says: I’m a little unsure, from you diagram, how, if your > trunk contains two completed and merged features that aren’t yet live > (video upload and REST API, say) you put one feature live without > putting the other live. It looks like code only gets to the live > branch via the trunk, but it seems from your diagram that the trunk > could contain all manner of complete and semi-complete features.
He’s right and I cover this in more detail in my Best Practices For Web Developers Essay html / pdf , but the basic idea is this: Your dev trunk holds the bug fixes and features you want to see in the next release. If, as in Michael’s example, you’ve got the video upload written, but maybe you don’t have the hardware in place to support storing and serving gigs upon gigs of uploaded videos, so you decide to hold off on deploying that. So you leave it be in it’s little branch, remembering to update it at least once a week until you’re ready to include it in the general codebase.
Have you come up with a better solution to Michael’s problem? Please let me know if you have.
I’m really not thrilled with this particular chart though. It’s got no flow. If you can improve upon it please do so and send me a copy. I’ve got some ideas but nothing great. I really liked the Using Darcs with SVN / CVS flow chart much better.
As always you can click on the image for a full sized version and / or download the Dia file too.
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.