I'm not sure if using the same blog title as David Brock is proper Blog Etiquette but his title captures the topic best.
I too love Subversion and often questioned the tags folder in a conventional repository layout.
Reference - http://svnbook.red-bean.com/nightly/en/svn.reposadmin.planning.html#svn.reposadmin.projects.chooselayout
/project
/trunk
/branches
/tags
David Brock's post - http://jroller.com/page/bokmann?entry=questioning_subversion_practices
I understood that the typical repository layout derived from CVS but I didn't realize how CVS vs. Subversion deffered in implementation.
"As a conversion from CVS, this convention makes perfect sense. You see, branches and tags in CVS are different things. But in subversion, they are the same - they are just copies of the trunk into one of those directories. In CVS, these events are temporal... that is, they affect a file at a given point in time. In Subversion, while they still apply to a particular version of a file, branches and tags are spatial... that is, they exist as copies of the trunk, just copied into a specially designated place."
While I like David's recommended layout I prefer the Tree metaphor. Below is an example layout (notice the 'tags' folder is missing):
/project (your name here)
/branches
/v1.0
/v1.5
/trunk
/build
/codegentemplates
/database
/docs
/referencedassemblies
/solutions
/tools
Just to clarify the intent of some of folders under trunk:
build - scripts and stuff for building your code
database - sql scripts and stuff. further break this down into views, sprocs, tables, indexes, etc.
docs - project documentation, how to guide, etc
referencedassemblies - file references like entlib, nhibernate, internal helper assemblies, infragistics, etc.
solutions - solution files and projects
tools - nunit, fxcop, etc.
Possibly the tools folder should go under the /project folder.
In the end, I'm not sure if it matters which approach you follow as long it is purposeful.