I believe that all the elements of a project can be stored in a single repository. A common repository for development, Test and Production. If this is the case, how will we manage the security? Can we control the environment depending on the person who is working like programmer, Administrator etc? For instance a developer will have access only in development and read only access in Test and Production and the Administrator have the full access. Also how the version control system works with this.