I develop a variety of applications and have 3-4 miscellaneous libraries that I reuse across these apps (one for math, one for database functions etc.).
Currently I have one master source directory with each project as a top level directory (including my helper projects). And each project that needs a helper adds the entire project as a reference in the solution (not against the library). This allows for quick debug/updates of the helper library, but gets cumbersome quickly as I always have to rebuild the helpers and can make breaking changes to interfaces used by much older programs.
All of these are stored in a trunk directory of a subversion repository, and when I branch particular directories I create a massive branch, etc. This is quite difficult to maintain backwards compatibility as well as just shear code size and local size of the repository.
What is the best way to handle these situations? How do you layout your various projects.
Do you put each project in its own subversion repository? Or do you use one repository with multiple top level projects and trunk/branch/tags beneath that?
How do you reference alternate projects? Do you just compile these and reference the data?