VersionPress is one of my favorite WordPress plugins at the moment. It brings the power of version control to WordPress. WordPress has had quasi-VC like features for some time. It’s long been possible to save article versions, for example. But VersionPress takes this sort of versioning to the next level. It makes it possible to version entire WordPress sites — database, files, and all.
If you can’t see why that’s exciting, you’re probably not a developer. For non-developers out there, think easy rollbacks of WordPress sites to earlier versions, simple-to-setup staging sites, and the ability to atomically undo any changes you’ve made to your site.
A key benefit is the ability to create branches. Let’s say you want to add a new feature to your WordPress site, but don’t want to try it out on your live site. VersionPress can create a branch — essentially a copy of your site — to develop the new feature on. When you’re happy, you can merge the changes back into the main branch quickly and easily. This makes working with staging sites much easier.
One of the features that makes VersionPress so attractive is its ability to version the WordPress database. Database versioning is no easy task, but VersionPress manages it with aplomb, but with some limitations. In the current release, VersionPress doesn’t guarantee that it will properly version databases to which plugins have saved data. Sometimes it works, sometimes it doesn’t. It’s unpredictable, which isn’t good news for a content management system with a thriving plugin ecosystem.
Version 4, which is currently in alpha, is intended to fix the plugin problem. To properly handle versioning a database to which plugins write data, VersionPress needs to know how they use the database. To that end, VersionPress’ developers have created a mechanism that plugin developers can use to let VersionPress know how they use the database.
Plugin developers are being asked to create a file using a special definition format that contains the relevant details. VersionPress intends to create a repository of these files that’s likely to contain information for the most popular WordPress plugins. Because there’s such a huge number of plugins in the WordPress repository, VersionPress wants to hear from plugin developers.
“As you can imagine, v4.0 is a fairly significant release and if you’re a plugin author, please help us get it right. As noted above, we’ll be happy to work with so that your users are the first ones to enjoy the benefits of version control.”
Plugin versioning isn’t the only new feature in the upcoming release. VersionPress 4.0 will also include much improved search that supports searching for changes by specific users, changes to particular types, and a number of other useful features.
WordPress professionals who use Composer to manage sites and install plugins will be happy to hear that VersionPress 4 supports Composer workflows, and will work properly with sites that have plugins installed with Composer.
Another nice addition is a history visualization that allows users to see the branching, merging, and commit history of multiple branches.
As I said, VersionPress 4.0 is currently at the alpha stage, which means it isn’t ready for use on your main WordPress site, but if you want to test the new features, you can grab the development version from GitHub.Posted in: WordPress