"In a perfect world, we would always work on the trunk. This would limit the complexity of merging changes between two or more codelines. However, in the real world of software development, you might be developing for a future release and at some point need to make an emergency patch to a version that's already in use. You need access to a copy of the source code for that released version — without disrupting the new code that's under development."