我正在寻找一个插件/act来允许我的模型的版本控制。很难找到可用的解决方案的列表。到目前为止,我得到了以下结论:
acts_as_versioned
simply_versioned
vestal_versions
后两种解决方案只需要一个版本表--这听起来不错,但我有一种不好的预感,即迁移的简易性将如何受此影响(因为它们将状态序列化为字符串)。
另一方面,acts_as_versioned
有点灰尘(最后一次提交是在一月份)。最近有没有这些方面的经验?或者我可能忽略的其他解决方案(或分支)?
发布于 2009-11-09 07:11:25
我上周使用过vestal_versions
,是的,它是最先进的替代方案,至少在空间方面是这样:你只需要存储你真正需要的东西。这是一个活跃的项目,1.0版将是一个巨大的更新,有许多新功能;看看1.0分支就知道我的意思了。
但在尝试了一下之后,我注意到了一个很大的缺陷:性能。每次你需要一个特定的版本时,你必须遍历所有中间版本,重新构建你需要的版本。这也意味着你不能直接编辑或删除一个版本,因为它可能会弄乱修改,破坏链条。要做到这一点,您需要充分处理版本,而vestal_versions
目前还不能做到这一点。
这样,对于我遇到的问题,我最终得到了我自己的版本控制解决方案。我需要性能和快速删除和编辑版本的能力,所以我牺牲了存储空间,开发了类似于act_as_versioned
的东西。
但是,如果你不需要这样做,并且不需要频繁地恢复,我强烈推荐vestal_versions
。这是一个先进的、可靠的解决方案,也是一个积极的解决方案,背后有一位充满激情的开发人员。
发布于 2009-11-09 18:03:03
我一直在使用一个名为"paper_trail“的宝石。这似乎是目前网上最好的解决方案。它集审计和版本控制于一体。
http://github.com/airblade/paper_trail
希望这能有所帮助!
发布于 2009-11-09 02:44:06
几个月前,我测试了几个解决方案,vestal_versions
是最有效的。还有一个来自Ryan Bates的great screencast here。
如果您正在寻找其他替代方案,请查看The Ruby Toolbox list。
https://stackoverflow.com/questions/1697456
复制相似问题