If you have multiple SMP servers keep the repository on the production server and make your other servers unmanaged so you can deploy directly to them. When you're ready to promote something to production commit it to the repo with notes then deploy.
If you use integration projects it's a little more tricky. You need to add the integration project to the repository and then add the reference to the project from the repository (when you add a reference you'll see Repository on left). This will ensure that during deployment the integration library is also published.
As far a folder structure, I guess that can be anything that makes sense for your projects.