Version Control with Subversion, 2nd Edition
by C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick
Branch Maintenance
You may have noticed by now that Subversion is extremely flexible. Because it implements branches and tags with the same underlying mechanism (directory copies), and because branches and tags appear in normal filesystem space, many people find Subversion intimidating. It’s almost too flexible. In this section, we’ll offer some suggestions for arranging and managing your data over time.
Repository Layout
There are some standard, recommended ways to organize a repository. Most people create a trunk directory to hold the “main line” of development, a branches directory to contain branch copies, and a tags directory to contain tag copies. If a repository holds only one project, often people create these top-level directories:
/trunk /branches /tags
If a repository contains multiple projects, admins typically index their layout by project (see Planning Your Repository Organization to read more about “project roots”):
/paint/trunk /paint/branches /paint/tags /calc/trunk /calc/branches /calc/tags
Of course, you’re free to ignore these common layouts. You can create any sort of variation, whatever works best for you or your team. Remember that whatever you choose, it’s not a permanent commitment. You can reorganize your repository at any time. Because branches and tags are ordinary directories, the svn move command can move or rename them however you wish. Switching from one layout to another is just a matter of issuing a series of server-side moves; if you don’t like the ...