We learn as we go. We create new designs based on past experiences and knowledge to date. Back when FreshPorts started, we catered only for ports. Now we cover the ports and src trees. Now that we are on svn, we can do much more than when on cvs.
One change I would like to make is pathnames. At present, all pathnames in the FreshPorts database sits under / (root). We do not cater for branches such as stable, head, etc. I plan to change that because it will solved an existing problem: how to cater for a commit which affects two branches. Database integrity does not permit a given file to be listed in a given revision number more than once.
But I can design the layout of the top level tree. I suspect we want it to look like this:
Where base covers the src tree.
The existing src directory will move to /base/head
The existing doc directory will move to /doc/head
The existing ports directory will move to /ports/head