While many WordPress developers use version control as part of their workflow (for example, Mark Jaquith’s WordPress Skeleton is extremely popular), there is still a gap when it comes to easy collaboration and version control for an entire WordPress project. Particularly in relation to database changes. Plugins such as WP Migrate DB Pro from Delicious Brains and the awesome WP-CLI command line tools go a long way in filling that gap, but the challenge of complete WordPress version control for the masses still remains unanswered.
Currently under development, the VersionPress plugin builds upon Git’s version control system. VersionPress will be able to store an entire WordPress website, database and all, completely version controlled in Git. The plugin is being developed by Borek Bernard (Founder) and Jan Voráček and, once launched, will be licensed under the GNU General Public License.
According to VersionPress.net:
VersionPress is a version control plugin for WordPress. It keeps the whole site, both files and the database, in Git enabling things like site-wide reverts, safe updates, easy staging.
The core features of VersionPress include:
- Creation of a backup after every logical change
- Restoration of any historical version of the project from the archive
- The ability to make changes selectively, without affecting new changes
- The ability to enable multiple users to work simultaneously on the same project
- A testing environment where there is a two-way sync between the testing environment and the live site
- A space-efficient repository that integrates effectively with third party tools
I was fortunate enough to watch a demonstration of VersionPress by Borek Bernard. My first impression: VersionPress will be a ground-breaking plugin for all developers.
In addition to the demo, I had the opportunity to ask Borek a few questions about his project.
Chris: Where did the idea for VersionPress come from?
Borek: As a software developer, I use version control systems for just about every project I do. They are really useful – when anything goes wrong, there is always an easy way to get back to a working version. That’s why I’ve always found WordPress projects to be a little bit difficult – they are often serious software projects too but it’s hard to do proper versioning for them. It’s because half of the truth is in the files and half of it is in the database. So with my colleague, we started looking for ways to unite those two worlds and version everything in a single Git repository. The result is VersionPress.
Chris: For developers already using Git in their workflow, how will they be able to benefit from using VersionPress?
Borek: I have seen many developers using Git to version control the files part of a WordPress site, which is certainly useful on its own and I have personally used that approach for a long time. However, I haven’t seen many developers doing full-site versioning in Git, including database. That is something quite unique about VersionPress, and while I don’t say that there aren’t solutions or workflows to achieve similar results, I haven’t seen a solution that combines proper version control with user friendliness in the way that VersionPress does.
Chris: VersionPress has certainly attracted interest and your project was recently discussed on Hacker News, how can the WordPress community get behind this and contribute to fast track development?
Borek: Yes, the initial response has been overwhelming and we are humbled by that. But it is also a very young project and we know the goal is quite ambitious. That’s why we’re currently running a campaign at versionpress.net to crowdfund the initial development and I’d like to ask everyone who likes the idea of VersionPress to consider supporting it. We can’t make it without the support of the community and any help will be greatly appreciated.
Chris: How can readers keep up to date and find out more about VersionPress?
So there you have it, certainly an interesting project to watch in the WordPress space. After learning more about the project I decided I’d get in early and back it (contributions start from as little as $5). I do wish the team every success with hitting their target soon and I really hope we do see this plugin in the near future! If all goes to plan, it should be available later this year.
Chris isn't afraid to admit it: he's a geek from way back, having worked in IT for more than 20 years. He co-founded a digital agency called Clickify, working with a great team of developers and marketers, and is also the WordPress Editor for SitePoint. Chris is passionate about keeping up-to-date with the latest web technologies and can be found at many of the tech events in Melbourne, Australia. For more details, check out his personal site at chrisburgess.com.au.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers