VersionPress: True Version Control Comes to WordPress

Share this article

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. That was until an innovative project called VersionPress came along. VersionPress is a WordPress Plugin that will keep track of every change, completely version controlled using Git. 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:
  1. Creation of a backup after every logical change
  2. Restoration of any historical version of the project from the archive
  3. The ability to make changes selectively, without affecting new changes
  4. The ability to enable multiple users to work simultaneously on the same project
  5. A testing environment where there is a two-way sync between the testing environment and the live site
  6. 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. VersionPress Change History 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? Borek:
We have a Twitter account at @versionpress and publish the announcements and other things at our blog versionpress.wordpress.com. 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.

Frequently Asked Questions about VersionPress

What makes VersionPress different from other version control systems?

VersionPress is a version control system specifically designed for WordPress. Unlike other version control systems, VersionPress is built to understand the structure of WordPress, making it easier to track changes and revert to previous versions. It uses Git, a popular version control system, under the hood, but adds a layer of WordPress-specific functionality on top. This makes it a powerful tool for WordPress developers and site administrators, allowing them to manage their sites more effectively.

How does VersionPress handle database changes?

VersionPress has a unique approach to handling database changes. Instead of storing the entire database in each commit, it only stores the changes. This makes it much more efficient and allows for more granular control over your site’s history. You can easily see what changes were made in each commit, and you can revert to any previous state of the database with a single click.

Can I use VersionPress on a live site?

While VersionPress can technically be used on a live site, it’s generally recommended to use it in a staging or development environment. This is because VersionPress tracks all changes to your site, and if something goes wrong, you could potentially lose data. However, if you’re confident in your ability to manage your site and you have a good backup strategy in place, you can certainly use VersionPress on a live site.

How does VersionPress handle conflicts?

VersionPress has a built-in conflict resolution system. If two users make conflicting changes, VersionPress will alert you and give you the option to choose which change to keep. This makes it easy to manage a team of developers or administrators, ensuring that everyone’s changes are tracked and conflicts are resolved quickly and efficiently.

Can I use VersionPress with other version control systems?

Yes, you can use VersionPress alongside other version control systems. However, keep in mind that VersionPress is designed to work with WordPress, so it may not integrate as seamlessly with other systems. If you’re using another version control system for your WordPress site, you may want to consider switching to VersionPress for its WordPress-specific features.

Is VersionPress suitable for beginners?

VersionPress is designed to be user-friendly and accessible to users of all skill levels. However, it does require a basic understanding of version control concepts and WordPress administration. If you’re new to these topics, you may want to spend some time learning the basics before diving into VersionPress.

How does VersionPress handle plugins and themes?

VersionPress tracks changes to plugins and themes just like it does for the rest of your WordPress site. This means you can easily see what changes were made to your plugins and themes, and you can revert to previous versions if necessary.

Can I use VersionPress for non-WordPress sites?

VersionPress is specifically designed for WordPress, so it’s not suitable for non-WordPress sites. If you’re looking for a version control system for a non-WordPress site, there are many other options available, such as Git, Mercurial, and Subversion.

Does VersionPress support multisite installations?

Currently, VersionPress does not support multisite installations. However, this is a feature that the VersionPress team is actively working on, so it may be available in future versions.

Is VersionPress free?

VersionPress is an open-source project, which means it’s free to use. However, there are premium features and services available for a fee, such as priority support and custom development.

Chris BurgessChris Burgess
View Author

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.

ChrisBgitversion controlversionpressWordPress
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week