This is a very interesting question, because there are many advantages to starting law (modulation, low connection ...). Anyway, here's how I get started:
1) put everything in the trunk:
http://svn/application/trunk/application
2) if possible, start early to break the code into modules
http://svn/application/trunk/application1 module1 module2
3) if the module is stable, move it upstream to your own repository:
http:
4) finally, when you have several stable modules and applications, you can get
http://svn/application1/trunk http://svn/application2/trunk http://svn/module1/trunk http://svn/module2/trunk
Each application / module has its own release cycle.
Alternatively, you can see what the Spring Framework does (a very good organization, if you ask me)
http://svn/application1/trunk http://svn/application2/trunk http://svn/framework/trunk/module1 http://svn/framework/trunk/module2
I would advise you not to split the code into connecting lines / branches for each module, at least at the beginning of the project: as soon as you start branching (and do not work on the trunk), you will not be able to work with HEADS of another module: you need to either expand everything their projects at the same time, or work with certain versions (1.0, not SNAPSHOT). I don't think I'm very clear, but let me know if I have to explain it differently.