I'm looking for a plugin/act to allow versioning of my models. It's kind of difficult to find a list of the available solutions. So far I gathered:
acts_as_versioned
simply_versioned
vestal_versions
The last two solutions only require a single version table - this sounds nice, but I've got a bad feeling about how the ease of migrations will be affacted by this (because they serialize states as a string).
On the other hand, acts_as_versioned
is a little bit dusty (last commit in January). Are there any recent experiences with any of these? Or other solutions (or forks) I might have overlooked?
Ive been working with a gem called "paper_trail". It seems to be the best solution online at the moment. It has auditing and version control in one.
http://github.com/airblade/paper_trail
Hope this helps!
I've worked with vestal_versions
last week and yes, it is the most advanced alternative, at least in terms of space: you store just what you really need. It is an active project and the version 1.0 is going to be a huge update with many new features; just look at the 1.0 branch to know what I mean.
But after playing with it a bit, I've noticed a big flaw: performance. Every time you need an specific version, you have to go through all intermediate ones, reconstructing the version you need. This also means you cannot edit or delete a version directly, because it can mess with modifications, broking the chain. For do this, you need to process versions adequately, what vestal_versions
currently does not do.
This way, for the problem I had, I ended up with my own versioning solution. I needed performance and the ability to delete and edit versions rapidly, so I sacrificed storage and developed something similiar to act_as_versioned
.
BUT, if you don't need this and do not have to revert very frequently, I highly recommend vestal_versions
. It is an advanced, solid solution and an active one, with a passionate developer behind it.
We used acts_as_audited in a project, with quite a good success.
You can find that at http://github.com/collectiveidea/acts_as_audited/
(last commit in november :-) )
A couple of months ago I tested a couple of solutions and vestal_versions
was the most effective.
There's also a great screencast here from Ryan Bates.
If you are looking for other alternatives, check out The Ruby Toolbox list.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With