What are the best practices for maintaining Puppet code in version control? Do people usually keep separate branches for different kinds of machines (e.g. webservers, SMTP servers, etc)? Is there a discussion about this documented somewhere?
Over at Seattle Biomed, we keep everything in the same branch (for now) - all of our nodes are defined in nodes.pp, and we have modules that install software/configuration files as needed. We include modules in the node definition that should comprise the service we want to run on the server.