代码之家  ›  专栏  ›  技术社区  ›  Marcel Jackwerth

Ruby on Rails中模型的版本控制

  •  16
  • Marcel Jackwerth  · 技术社区  · 15 年前

    我正在寻找一个允许我的模型版本控制的插件/行为。很难找到可用解决方案的列表。到目前为止,我收集到:

    • acts_as_versioned
    • simply_versioned
    • vestal_versions

    最后两个解决方案只需要一个单一版本的表—这听起来不错,但我对迁移的易受影响有一种不好的感觉(因为它们将状态序列化为字符串)。

    另一方面, 作为版本 有点灰尘(最后一次承诺是在一月份)。最近是否有过这些方面的经验?或者其他我可能忽略的解决方案(或分叉)?

    6 回复  |  直到 13 年前
        1
  •  4
  •   Lailson Bandeira    15 年前

    我和他一起工作过 vestal_versions 上周,是的,这是最先进的选择,至少在空间方面:你只存储你真正需要的东西。这是一个活跃的项目,版本1.0将是一个具有许多新特性的巨大更新;只需查看1.0分支了解我的意思。

    但在玩了一会儿之后,我发现了一个很大的缺陷:性能。每次你需要一个特定的版本时,你都必须通过所有中间版本,重新构建你需要的版本。这也意味着你不能直接编辑或删除一个版本,因为它会干扰修改,破坏链接。为此,您需要充分处理版本,什么 维斯塔尔版本 目前不行。

    这样,对于我遇到的问题,我最终得到了自己的版本控制解决方案。我需要性能和快速删除和编辑版本的能力,所以我牺牲了存储空间,开发了类似于 act_as_versioned .

    但是,如果你不需要这个,也不需要经常回复,我强烈建议 维斯塔尔版本 . 它是一个先进、可靠的解决方案,也是一个活跃的解决方案,背后有一个充满激情的开发人员。

        2
  •  21
  •   Ryan    15 年前

    我一直在研究一种叫做“纸迹”的宝石。这似乎是目前最好的在线解决方案。它集审计和版本控制于一体。

    http://github.com/airblade/paper_trail

    希望这有帮助!

        3
  •  2
  •   tal    15 年前

    我们在一个项目中使用了经审计的行为,取得了相当大的成功。

    你可以在 http://github.com/collectiveidea/acts_as_audited/

    (11月最后一次提交:—)

        4
  •  2
  •   s01ipsist    13 年前

    几个月前,我测试了几个解决方案, vestal_versions 是最有效的。 还有一个 great screencast here 来自Ryan Bates。

    如果您正在寻找其他替代方案,请查看 The Ruby Toolbox list .

        5
  •  1
  •   user496437    13 年前

    另一个插件是Paper_Trail。以下是今天发布的铁路运输的链接:

    http://railscasts.com/episodes/255-undo-with-paper-trail

    他还提到了为什么他更喜欢纸质的痕迹而不是法式的痕迹。

        6
  •  0
  •   Chuck Han    14 年前

    嘿,我想知道是否有人考虑过在后端使用Perforce、Github等,而不是使用数据库来支持版本控制?所以它基本上是基于文件的数据检索,我猜…