1. A computer-implemented method comprising: storing a virtualization tool, a provisioning tool, and a configuration tool, in a distributable self-contained repository of a physical machine; and storing a source code management tool in the distributable self-contained repository, the source code management tool configured to develop each virtual machine independently from each other in parallel, and to merge back the developments to a corresponding parent virtual machine.