Scott Hanselman posted up a good piece on his blog about how they layout their source tree. He mentions quite a few good tools but gets down into specifics about how they lay things out. My builder managers toolkit pretty much includes these things:
- CVS or SVN today, Hatteras tomorrow.
- NAnt today, MSbuild tomorrow.
- FxCop today and tomorrow.
- Draco.NET today, Team System tomorrow.
- MbUnit today, built-in VS2005 tomorrow.
Now when it comes to laying out my filesystem - I do this and it just seems to work really nicely.
- ModuleDirectory\
-
- Module.build
- Module.FxCop
- Source\
-
- SolutionDirectory\
-
- ProjectDirectory\
- ProjectDirectory\
- ProjectDirectory\
- Documentation\
- Tools\
-
- NAnt\ (copy of NAnt)
- MbUnit\ (copy of MbUnit)
- Build\ (custom NAnt tasks)
- FxCop\ (copy of FxCop)
- Templates\
-
- Keys\
-
Of course, this is just one module in CVS – it fits into a much larger picture.