Versioning and your WordPress site?

The most prudent way is to use a staging server.

The workflow would be:

  • DVCS (git, mercurial)
  • Remote repository for multiple users (self hosted, github, bitbucket, etc,).
  • Staging server, push master files to.
  • If all is good send the files from staging to live.

Some Notes:

Have only one/two people actually manage the master push to the staging server, this allows them to review changes and have a certain amount of control over what goes on, also it is way less confusing.

This is strictly for code changes, content based changes are way more complex and would need several other “layers” to ensure database compatibility/sync.

Sending from staging to live is a topic in of itself, you can use automated tools, ftp, even DVCS itself, it really depends on your environment.

An alternative is to use a PHP based PAAS servive ( there are now several), they can automate much of this process, I recently reviewed them all and each one has a different feature set and quirks ( most of these services are really new).

For example here is a really boring video I made on syncing a live site through github ( using Engine Yard), the downside is that this service has no actual file server and in the long run made it very difficult to work with, but some PAAS services do support this.(I think they are adding it soon as well)
http://www.youtube.com/watch?v=8ZEiFi4thDI

Leave a Comment