VersionPress 3.0 has been released officially on 28th of April and is a prime example of what transitioning to open source can bring to the table of application features and improvements.


There is a bunch of new options and improvements which are worth mentioning like:

  • Filtering – You are now able to search changes by authors, dates, commit messages, WordPress actions, etc.
  • Bulk undo – Changes to the website that involved multiple actions like trashing a post and then deleting it forever can be reverted by selecting both and restoring the post.
  • Environment tracking VersionPress 3.0 tracks from which environment a change originated. This provides another way of easily orienting yourself in the changes on your website.



Some core version improvements show that a strong base is an important part of a stable platform:

  • Serialized data is diff- and merge-friendly which improves IDs in sticky posts and widgets.
  • Date modified fields are handled correctly – Merge conflicts from tracking post_modified and post_modified_gmt fields for posts before the installation of VersionPress are now avoided.
  • Changes on adjacent lines no longer create conflictsWhen different users update adjacent lines, merging the changes they made no longer creates a conflict.
  • Shortcodes with IDs work across environments Shortcodes will now update IDs correctly across environments. A new *-shortcodes.yml has been developed to support this change.
  • Database writes – Database related writers like view counters, plugin actions etc now do not create excessive amounts of commits but instead have a configurable interface with a default value of once per hour. This is implemented in order to remove commits flooding.
  • Configurable entity handling Some entities just should not be part of the repository such as transient options or spam comments. VersionPress 3.0 introduces a better, extensible ignoring mechanism to deal with such entities.
  • Ignoring of specific database columns – As the name suggests, you can now fully ignore specific database columns or ignore dynamically computed by PHP functions values.
  • Initial support for custom directory layouts – WordPress location, wp-content, plugins or uploads directories are now customizable. However, the structure needs to be defined before VersionPress is activated.
  • Data updates via query() are now understood – Previously, VersionPress handled data updates via the insert(), update() and delete() methods which support 99 % of the changes. Now, that last 1 % is added by supporting the query() method.
  • Common config – as most of the information in wp-config.php is environment-specific this file was ignored. However, values like WP_CONTENT_DIR and WP_PLUGIN_DIR add a config file named wp-config.common.php which is committed into the repository and required from the standard wp-config.php file.
  • General reliability improvements – improvements in how VersionPress stores and parses internal data formats. VersionPress 3.0 covers everything that vanilla WordPress 4.5 does.




Other notable changes

  • Better update method that keeps the same INI files and VPIDs across VersionPress releases which makes inspecting history much easier.
  • vpconfig.neon (custom configuration format) was replaced by the standard wp-config.php constants.
  • NEON file format was replaced with a similar but more common YAML.
  • PHP 5.6+ is now required.
  • VersionPress underwent security and general code reviews


As much has changed in VersionPress 3.0, the platform cannot be upgraded from previous releases and a full re-activation is required. The recommended procedure is:

  • Put your website in maintenance mode
  • Deactivate VersionPress
  • Delete the contents of wp-content/plugins/versionpress and extract the latest version there.
  • Activate & initialize the plugin again.
  • Disable maintenance mode.

These improvements are surely to bring a better experience as VersionPress 3.0 provides more control and choices for users.


Find this post useful? Share ...Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInBuffer this pageShare on RedditDigg this
Antoniy @FastComet

Antoniy helps FastComet grow our client base through affiliates and strategic partnerships. You're likely to run across him at some point in the FastComet Community because he loves getting in and interacting with our great customers.