SVN Repositories
Most of my projects are kept in individual SVN repositories to maintain a source history and make them easily available.
I've chosen to use one repository per project to avoid artificially inflating revision numbers. Many projects change very rarely; I didn't want to check out revision 4000 when the code hasn't changed since 200.
Repository Access
All the repositories are stored on svn://jamessocol.com/,
and are read-only for unauthenticated users.
The individual repositories are named after their projects. For example,
Better Search Widget is in
svn://jamessocol.com/better-search-widget.
I have not, however, been completely consistent on using dashes or underscores.
Repository Structure
Most repositories have two main subdirectories: trunk and
tags. Some may have branches.
The trunk is usually stable, since most of the
current projects are very small and the changes are fast and easy. However,
it is bleeding-edge and there's no guarantee trunk
will compile, let alone run stably.
When I commit any finished change, I do my best to remember to augment the
minor revision number (ie: 1.1.x) and tag a new version in
the tags directory. I do, from time to time, forget to
do one of these things.
Once I tag a version, it won't change, bugs and all. But they are tested and stable enough for me to use.
One exception: sometimes I forget to change the version number in the source code before I tag the new version. I do go back and update that. Mostly.