Git is a version control system written by Linus Torvalds, which is used to collaborate development on the Linux kernel source code. Its support for rapid branching and merging makes it the perfect choice for a Puppet implementation. In Git, each source code commit has references to its parent commit; to reconstruct a branch, you only need to follow the commit trail back. We will be exploiting the rapid branch support to have environments defined from Git branches.
It is possible to use Git without a server and to make copies of repositories using only local Git commands.
In your organization, you are likely to have some version control software. The software in question isn't too important, but the methodology used is important.