Need Assistance on how to set up versioning for my Drupal site

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
cabplan's picture

I am the web developer for a new site that is coming up but there are also numerous other drupals sites I will be in charge of. The current setup for the other drupal sites is that they use Perforce (version system) to keep track of all changes done to the files of module and themes. Then they use a versioning module to keep track of all the content changes done on the site.

I was wondering if there is an all-in-one solution for drupal that can control all versioning in Drupal. I found the Version Control API but not really sure how to set all this up. I found the Live CSS module which lets a user edit the CSS but not sure how that using versioning as well.

If anyone can give me insight on how to setup my new drupal site or revise my current ones to have a all-in-one versioning control, what modules would I need, I would be most appreciative.

Thanks,
Chris

Comments

Multiple methods

colan's picture

Typically, folks don't use an all-in-one method to version Drupal assets; they use different methods for different asset classes.

With Drupal, we have four (4):

  1. The database as a whole
  2. Individual content instances (records)
  3. The file system
  4. The code

These should all be handled differently.

  1. For the database, find or write a script to periodically (through cron) dump and compress your Drupal database with timestamps.
  2. For individual content items within the database, enable versioning for whichever content types you'd like versioned. Each content type's configuration has a setting for this.
  3. For the filesystem, periodically (through cron) use a tool like duplicity to version it.
  4. For the code, I'd recommend Git as it's free software, unlike Perforce. You can then push all code changes to a remote origin repository, either one that you control, or through a service provider such as GitHub or BitBucket.

To backup you database, run the dumps through duplicity in the same way that you are with the file system. This way, you'll have older versions for both stored in the same place (preferably off-site).