I know there is a million ways this could be done, I'm more looking for the "best-practice" of how this "should" be done.

I have an Aegir setup with 4 different Drupal platforms. Within each platform there are several Sites. There is also modules/themes in the "all" directory that are shard between the sites.

How would one one manage these platforms/sites in Git?

Should we create 1 repo for the entire "platforms" folder? A repo for each platform folder? A repo for each platform folder and a repo for each site? A repo for each site and a repo for each "all" site?

What would be the best practice for this?


  • 1
    I think it boils down to what is best/easiest for you and your team considering workflow, deployment methods, etc. – enzipher Jan 8 '13 at 23:09
  • I agree with @enzipher: What is best depends from you, and the workflow used from you, or your team. This makes the question subjective, and not constructive. For every user suggesting to use a method there is at least one use suggesting to use a different method, or exactly the opposite. – kiamlaluno Jan 9 '13 at 0:16
  • oh! what I was looking for wasn't a subjective answer, I was looking more for a this is a "by the book" answer. that's what a best practice is, it's not subjective, it's by the book. – David Barratt Jan 9 '13 at 4:52

Here's the recommended way for Barracuda/Aegir by Omega8:

The recommended (and also more advanced) way to manage your Sites code is to use Makefiles (and then Drush Make) to build your Platforms, apply patches to contrib or custom modules etc, then using Profiler module to create your custom Installation Profile and manage in your Git repo just your Makefiles, your Installation Profiles and only your custom modules and patches – in a separate repo per module and per theme.

Source: http://omega8.cc/managing-your-code-in-the-aegir-style-110.

Not the answer you're looking for? Browse other questions tagged or ask your own question.