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 -
  Version: 2013.0.2805 / Virus Database: 2637/6016 - Release Date: 01/07/13


Reply via email to