When we have completed all the features and bugs for a milestone it is time to release. This will consist of actions like testing, quality assurance, packaging, and distribution, but here we are only concerned with one: tagging. This allows us to capture a snapshot of our Subversion repository at that moment in time that is subsequently easy to return to. We could just work with revision numbers and remember each one for future reference, but tags make the process friendly and give a feeling of accomplishment. Without tags the code will seem in a constant state of flux, whereas with them we have solid points of reference.
Creating a tag has the same process as branching, which was described in Chapter 6, except that we place them in the tags
path rather than branches
. Tag names should correspond to the milestones we have defined in Trac.