More people essentially means you will want more branches (complexity got just
too big for the two branch model), probably one per feature, branched off devel
and re-merged [either feature -> devel; or devel(latest) ->feature depending on
flow] whenever a feature is ready for testing.
Once a feature is proven it's 'properly' merged (or rebased) to devel, and then
across to master.
and don't forget the manual (dftm) `git help workflows`
----- Original Message -----
From: Ray Shaw
Sent: Tuesday, January 08, 2013 8:12 PM
Subject: [git-users] Management of a puppet tree and multiple developers
I'm trying to solve a problem with git, but I think I'm going about it the
wrong way. I've tried searching for a lot of related terms, but either the
answer isn't out there, or I'm not trying the right words. It's possible git
can't do what I want, but I hope so.
We've been using git to manage our puppet manifests and content files for
over a year now. We have 2 branches, master and devel. We make changes to the
"devel" branch, do a git pull of "devel" on the development server, then test
with the development workstations. When the changes are ready, we merge them
into "master", do a git pull of "master" on the production server, and the
production network (Linux) clients get the changes.
This has been working well enough. There are only 2 of us making changes, so
there are few conflicts. The issue is that now we're adding 2 more developers
for a different platform (OS X), but they'll be working with files in the same
filesystem tree (and currently the same git branch) as we are for Linux. 99%
of their work will be on different files, but in the same directories as our
What we'd like to be able to do is push either:
a) changes just made to the Linux files
b) changes made by one person
c) select commits
to the "master" branch, and thus production server, without also merging any
potentially not-ready-for-prime-time changes made to the OS X files and/or one
or both of the OS X developers. It would be nice for Linux developer A to be
able to exclude Linux developer B's changes too, sometimes, but not as critical.
We initially thought of creating a separate development branch that only had
their files, but trying to have two git branches share a single filesystem
location doesn't work, at least not the way we're doing it (check out the OS X
branch, and /etc/puppet/darwinstuff is there, but /etc/puppet/linuxstuff
vanishes, and vice-versa). Complicating things is the fact that their files
(currently a small quantity, but sure to grow) are currently in the "devel"
branch as the result of a previous effort.
I feel like this has to be easier than I'm making it, and I'm just going
about it the wrong way because I don't understand Git well enough. But the
documentation I've found doesn't really seem to describe how to solve this.
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2013.0.2805 / Virus Database: 2637/6016 - Release Date: 01/07/13