Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Wednesday, October 03, 2007

Development Multiverse

Jeff Atwood just put up a post, complete with a catchy analogy, that provides a good pedagogic overview of branching and merging. Many aspects of these concepts were discussed in the comments, most providing support for the perspective that Branching Is Hard(TM). My own perspective is that one of the chief reasons this is 'all very difficult' is because individual developers only have exposure to branching in the scope of the entire project and that exposure is most often very limited. In the absence of explicit personal experience with managing branching and merging I think it will always be Hard. Queue extolling the virtues of distributed version control...

Coming late to the dVCS party, I discovered Mercurial (Hg) a few months ago. A dVCS like Hg allows you to have full version control over your own work; the prime benefit in this context, you can easily play with different branching schemes. You find out very quickly just how many 'parallel universes' you can juggle, or at least I did (with great power comes great...blah blah blah). In this circumstance, the individual developer can acquire experience with the complete process of managing branching and merging, which will help them grok the activities within the greater project context perhaps making the process Easier(TM).

I think the discussion of version control in the general context of software engineering is an interesting one, for more discussion check out some threads on Reddit (can't find the bloody one I'm looking for right now, argh!), this essay by David Wheeler (of Secure Programming for Linux and Unix HOWTO fame), and the Mercurial Book.