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
- acts_as_versioned
simply_versioned
- simply_versioned
vestal_versions
- 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?
另一方面,acts_as_versioned有点麻烦(最后一次提交是在1月份)。最近有什么经验吗?或者其他我可能忽略的解决方案(或者福克斯)?
6 个解决方案
#1
4
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.
我上周已经和vestal_versions合作过了,是的,它是最先进的选择,至少在空间上是这样的:你只需要存储你真正需要的东西。这是一个活跃的项目,1.0版将是一个巨大的更新,有许多新特性;只要看看1.0分支就知道我的意思了。
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.
但在玩了一会儿之后,我发现了一个很大的缺陷:性能。每当您需要一个特定的版本时,您必须遍历所有中间版本,重新构建您需要的版本。这也意味着您不能直接编辑或删除一个版本,因为它可能会打乱修改,从而引发链。为此,您需要充分地处理版本,而vestal_versions目前没有的功能。
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
.
这样,对于我遇到的问题,我最终得到了我自己的版本控制解决方案。我需要性能和快速删除和编辑版本的能力,因此我放弃了存储,开发了类似于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.
但是,如果您不需要这个,并且不需要经常恢复,我强烈推荐vestal_versions。它是一个高级的、可靠的解决方案和一个活跃的解决方案,背后有一个充满激情的开发人员。
#2
21
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.
我一直在研究一种叫做“paper_trail”的宝石。这似乎是目前在线上最好的解决方案。它具有审计和版本控制功能。
http://github.com/airblade/paper_trail
http://github.com/airblade/paper_trail
Hope this helps!
希望这可以帮助!
#3
2
We used acts_as_audited in a project, with quite a good success.
我们在一个项目中使用了acts_as_audited,非常成功。
You can find that at http://github.com/collectiveidea/acts_as_audited/
您可以在http://github.com/collectiveidea/acts_as_audited/找到
(last commit in november :-) )
(最后一次承诺:-)
#4
2
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.
几个月前,我测试了几个解决方案,vestal_versions最有效。瑞恩·贝茨也有一个很棒的视频。
If you are looking for other alternatives, check out The Ruby Toolbox list.
如果您正在寻找其他选择,请查看Ruby工具箱列表。
#5
1
Another plugin is paper_trail. Here is a link to the railscasts posted today:
另一个插件是paper_trail。以下是今天张贴的铁路的链接:
http://railscasts.com/episodes/255-undo-with-paper-trail
http://railscasts.com/episodes/255-undo-with-paper-trail
He also mentions why he prefers paper_trail over vestal_versions
他还提到为什么他更喜欢paper_trail而不是vestal_versions
#6
0
Hey, I'm wondering if anyone has thought of using Perforce, GitHub, etc. on the backend INSTEAD of a database as a way to support versioning? So it would essentially be file-based retrieval of data, I guess...
嘿,我想知道有没有人想过使用Perforce, GitHub等在后台而不是数据库作为支持版本控制的方式?所以它本质上是基于文件的数据检索,我猜…
#1
4
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.
我上周已经和vestal_versions合作过了,是的,它是最先进的选择,至少在空间上是这样的:你只需要存储你真正需要的东西。这是一个活跃的项目,1.0版将是一个巨大的更新,有许多新特性;只要看看1.0分支就知道我的意思了。
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.
但在玩了一会儿之后,我发现了一个很大的缺陷:性能。每当您需要一个特定的版本时,您必须遍历所有中间版本,重新构建您需要的版本。这也意味着您不能直接编辑或删除一个版本,因为它可能会打乱修改,从而引发链。为此,您需要充分地处理版本,而vestal_versions目前没有的功能。
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
.
这样,对于我遇到的问题,我最终得到了我自己的版本控制解决方案。我需要性能和快速删除和编辑版本的能力,因此我放弃了存储,开发了类似于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.
但是,如果您不需要这个,并且不需要经常恢复,我强烈推荐vestal_versions。它是一个高级的、可靠的解决方案和一个活跃的解决方案,背后有一个充满激情的开发人员。
#2
21
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.
我一直在研究一种叫做“paper_trail”的宝石。这似乎是目前在线上最好的解决方案。它具有审计和版本控制功能。
http://github.com/airblade/paper_trail
http://github.com/airblade/paper_trail
Hope this helps!
希望这可以帮助!
#3
2
We used acts_as_audited in a project, with quite a good success.
我们在一个项目中使用了acts_as_audited,非常成功。
You can find that at http://github.com/collectiveidea/acts_as_audited/
您可以在http://github.com/collectiveidea/acts_as_audited/找到
(last commit in november :-) )
(最后一次承诺:-)
#4
2
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.
几个月前,我测试了几个解决方案,vestal_versions最有效。瑞恩·贝茨也有一个很棒的视频。
If you are looking for other alternatives, check out The Ruby Toolbox list.
如果您正在寻找其他选择,请查看Ruby工具箱列表。
#5
1
Another plugin is paper_trail. Here is a link to the railscasts posted today:
另一个插件是paper_trail。以下是今天张贴的铁路的链接:
http://railscasts.com/episodes/255-undo-with-paper-trail
http://railscasts.com/episodes/255-undo-with-paper-trail
He also mentions why he prefers paper_trail over vestal_versions
他还提到为什么他更喜欢paper_trail而不是vestal_versions
#6
0
Hey, I'm wondering if anyone has thought of using Perforce, GitHub, etc. on the backend INSTEAD of a database as a way to support versioning? So it would essentially be file-based retrieval of data, I guess...
嘿,我想知道有没有人想过使用Perforce, GitHub等在后台而不是数据库作为支持版本控制的方式?所以它本质上是基于文件的数据检索,我猜…