Thanks for your replies. I agree that we'd like to use multiple branches,
but we're running into problems doing that with our setup. The issue here
is that often, there isn't a way to know something isn't working until the
changes are committed and the development puppet server has pulled them
down, because only then can we see how the puppet client systems react.
There are a few potential ways to go about this:
- Have a bunch of test clients (most of them would have to be VMs), two for
each developer's workstation, and run puppet masters on each developer's
workstation for test clients to point to. I'm thinking there has to be an
easier way than this.
- Have multiple development branches, each one being pulled down to the
puppet development server in separate directories, then have those
directories rsync'd into the main puppet tree (this avoids the problems
that happen when you have unmanaged files in locations to which you're
doing a git pull, which are magnified greatly when implementing multiple
trees, as I discovered yesterday).
- A better version of the above is something like this, but it would
require a lot of restructuring, and unfortunately we're understaffed and
have several large projects that take priority:
I think option 3 is the best long-term, but I'm looking for something we
can implement quickly until we get a bit of breathing space. I realize the
way we're using Git is kind of weird, so maybe I'm thinking in the wrong