Revision control arrives for Joomla, finally!

As Joomla 1.5 continues to add new features and bug fixes to the codebase, it gets closer and closer to becoming a true, enterprise-class content management system. However, there are still some features absent from the core functionality which limit the widespread adoption of Joomla in large-scale, mission-critical environments. Perhaps the most obvious of these ‘killer features' are customizable access controls (i.e. advanced user/usergroup permissioning), nested content categories, customizable user registration and revision control. The latter is the management of multiple revisions or ‘versions' of the same unit of information. In colaborative environments, revision control is a mustr but even for the lone editor or content provider, revision control provides a very convenient content back-up solution for those times when you accidentally delete a few hours of writing. 

In practical terms for Joomla, revision control means storing and managing all the versions/editions of a content item so that they may be recovered if necessary. Common revision control features also includes version comparison  and merging. Like many of the advanced features above, the developer community has developed a few solutions to bridge this gap. A feature summary table is shown at the end of this article for the available revision control extensions currently available.


Versioning was the first player on the revision control scene for Joomla. It currently only tracks versions/editions applied to articles on the frontend of a Joomla website. Comparing and restoring previous versions is restricted to the backend of Joomla. The primary disadvantages of Versioning is the lack of version control when editing articles in the backend and of course the fact that it is only available for Joomla 1.0. In addition, the project has not been updated since Dec. 2006 and due to an apparent oversight, frontend changes are only recorded when the user clicks the ‘Save' button. Clicking the ‘Apply' button in the content editor saves the article but does not create a revision.

Egxact Revision Manager (ERM)

Egxact Revision Manager (ERM) has been on the Joomla scene for over a year now (since June 2007) and boasts a comprehensive feature set including the ability to notify site administrators when a content item has been updated. This is a great feature in collaborative situations or when content changes are performed by one or more persons but must be approved and published by a superior. ERM includes an accurate comparison tool to identify changes between versions, but the side-by-side display of the versions is somewhat clumsy.

One of the features unique to ERM is the ability to manage version on both the frontend and backend of your Joomla site. With full native support for both Joomla 1.0 and 1.5, the only real feature that is lacking from ERM is the ability to merge versions. However, the other version management features are built in seamlessly to the 'edit article' interface, which means you don't need to go to a separate version manager interface to compare and work with versions.

Version Control System (VCS)

The newest player in the bunch is VCS, a 2008 Google Summer of Code initiative that has not been officially released on the Joomla extension directory. However, I have used this extension without issue on a few production sites and it appears to be a mature application despite its recent development. Versions created on the frontend or backend are seamlessly recorded and can be compared and merged into a new version. The admin tools including restore and merge are restricted to the backend. Unlike ERM, the version management utilities are segregated to a seperate version manager interface. This is not as pleasing as the per-article integration of ERM, but for active and frequent versioning of many articles, it is a more efficient interface.

VCS is only available for Joomla 1.5 and it uses many familiar features of the Joomla 1.5 API including Mootools pop-up screens for version comparison and changing the versioning parameters. Compared to ERM, the comparison feature is quite aesthetically pleasing and large blocks of content (e.g.. paragraphs) are designated as unchanged, changed, deleted, etc. However, with whole blocks of content denoted as "changed", the exact change is not highlighted. One has to visually locate any differences, which could be tedious for things like typographical errors. Although this extension is currently free for download, it's not clear if there is are active  development and support paths.

What does the future of Revision Control hold for Joomla?

Future progress for these projects appears to be viable only for the Joomla 1.5 solutions, ERM and VCS. Each of these will need to focus on multilingual support. Adding a plugin architecture to allow for version data from other extensions to be tracked and managed is probably the only killer feature not yet available. It's not clear yet if VCS will have continued development, but integration into the Joomla core is a definitely possibility. As a commercial GPL application, ERM is likely to have continued development as an independent extension.

Take-home message

In conclusion, I recommend VCS for users exclusively on the Joomla 1.5 track who want to reduce costs or have many articles requiring frequent version maintenance. However, ERM is the best option if you have to support revision control on both Joomla 1.0 and 1.5, or if you require the ability to restore versions from the Joomla frontend. The $90 download fee for ERM provides access to both versions and includes updates for one year. Both VCS and ERM are GPL-licensed and of course not encrypted in any way, meaning they can be used on any number of domains.

Discuss this article in the forum.

Table I. Feature comparison.

Feature Versioning Egxact Revision Manager Version Control System
Joomla Compatability
1.0 Only
1.5 & 1.0
1.5 Only
Download Fee
$90/year none
Last JED update
 2008-07-01 N/A
Backend Restore
Yes Yes Yes
Backend Compare Yes Yes Yes
Backend Merge
No No Yes
Frontend Restore
No Yes No
Frontend Compare
No Yes No
Frontend Merge
 No No No
Versioning Interface
No No Yes
New Version
Notification - Global
No Yes Yes
New Version
Notification - Article
No No Yes
Notify Usergroups
No limited
JED link
Home Page
Last modified on Apr142011
blog comments powered by Disqus

Get the latest updates on our extensions