Installation profiles, SVN, and workflow

Events happening in the community are now at Drupal community events on www.drupal.org.
ebeyrent's picture

I could use some conceptual help with workflow and setup. I'll outline what I'm thinking of doing, and maybe you guys can tell me if I'm on the right track, and if so, how to incorporate installation profiles into the mix.

  • I've set up an SVN repository for Drupal core. When a new project is ready to begin, I check out from this repository.
  • I want to then be able to do a separate checkout of a default set of modules (i.e. installation profile) into the sites/all directory. This way, I can update Drupal core independently from the project and can manage updates more easily
  • I have a few modules that I use for development, but don't want included in the project to go to production. I am using svn:externals to handle this. This gives me the flexibility to do svn checkouts and updates on the production server for the project code, excluding the modules that I don't want in production (coder, devel, etc)

Does this make sense? If so, how do I incorporate installation profiles into this workflow and manage with SVN?

Comments

svn:externals is the way to go

pcorbett's picture

I agree svn:externals is the way to go. You may also want to look into the concept of "vendor branches" for keeping track of releases. This way, if you make any changes to core OR contrib modules, you can apply changes to them a bit more carefully then just copy and pasting over existing ones.

As for your installation profile, you can just keep yours in the /profiles folder in core - when you apply changes from a new Drupal release, it will only have the default profile, so you shouldn't have issues with yours getting overwritten.

Overview Video about CVS/SVN workflow

mattman-gdo's picture

If anyone is interested in a video overview of using a CVS/SVN workflow then I've provided one on my site. I'm very interested in how other people are using SVN (or other version control systems) to manage complex multisite setups.

Scan to about half way into the video to see how I'm using svn:externals and I talk about using vendor branching a bit too.

GotDrupal.com

Sharing what I know via Drupal Videos

Take a look at how Bryght

boris mann's picture

Take a look at how Bryght organizes SVN -- https://svn.bryght.com/dev/browser/bryghtbase/DRUPAL-5/trunk. We use symlinks for both profiles and modules, so you only ever have one copy of a module anywhere. The html folder is the current DRUPAL version, and is essentially kept "clean" aside from patches that get applied.

How do you checkout contrib

pcorbett's picture

How do you checkout contrib modules in to html/sites/all/modules? Or do each of your sites have their own set of core files to start? I'm just trying to figure out how you create each one of your sites unless they're all in a multisite setup.

I don't think something like this on the root site folder would work (svn:externals), or would it?:

/drupal/trunk/html  drupal
/drupal/trunk/modules/module_x  drupal/sites/all/modules/module_x

Distributions

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: