WP Engine announced on their blog today that they have launched seamless git integration into their platform for WordPress developers. Up to this point, version control has seen relatively little integration in the WordPress community, despite it being common practice in many software applications. Seeing a major player in the WordPress hosting business integrate version control directly into their systems is pretty exciting.
If you aren’t familiar with version control, check out this visual guide to get familiar with the concept. However, most of us have probably had at least some experience with it, and projects like Github (recently funded for $100 million), are completely focused on version control, have absolutely exploded in popularity.
WP Engine has guided documentation for creating your initial repository based on their built-in snapshot feature, so that developers who didn’t previously use version control (and should) can quickly get up to speed. Of course, some customers don’t need version control, and can continue to utilize WP Engine’s staging and production setup as they always have. Version control offers considerable power, but it can get very messy if you don’t know what you’re doing. I recommend you check out these resources if you are new to the concept of working with git.
Those of you familiar with git will feel right at home. The integration they’ve developed from the git codebase is based on git-push-to-deploy, and operates similarly to other services like Github and Bitbucket, except that it is integrated directly from your local install to your hosting environment. Users can deploy to a staging environment or directly to production.
Once you get set up with your initial repository, their documentation details how to setup which files are to be part of your version controlled environment (a .gitignore file), how to setup remote endpoints, and of course push to production and/or staging. And according to WP Engine, “That’s it! Once WP Engine receives your git push, our systems will automatically take care of the rest.”
The FAQ page of their git subsite is pretty informative. One of the questions I immediately had was whether or not they would include WordPress core in the versioning process. I’m pleased to see that they allow developers to choose, though they recommend against it. If a developer does version core, then WP Engine would update any out-of-date installs just as normal.
Another nice feature is that you can use git submodules as long as they don’t require private SSH keys. Therefore, if you maintain plugins via their own git repositories, you can include those plugins as submodules to your main site’s repository and maintain them separately.
This launch shows a pretty clear commitment by WP Engine that they are very interested in the business of the WordPress developer community. If you are anything like me, then maybe you think version control is pretty intimidating too. I’ve had some success playing with Github and using git via a GUI, but I’d be lying if I told you that my daily workflow is tied into a version control system. Having direct integration like this is pretty appealing.
Other developers are doing interesting things with WordPess and version control as well. Mark Jaquith recently announced WP Stack, a system that relies on Capistrano and (preferably) his Skeleton WordPress install. Also, Crowd Favorite’s RAMP product has been around for quite a while, and offers in-dash content deployment, but not without a significant pricetag.
WP Engine is including git integration with all hosting accounts, which at the time of this writing, starts at $29 per month.