1

我正在用 Ruby on Rails 编写一个应用程序。此应用程序将交付给至少两种不同的客户类型。基础总是相同的,但有些观点不同。主要是这样。目前。

有没有什么办法,例如使用分支,使用相同的代码库并仅分离视图?我阅读了 Git 分支手册,但仍然不确定这是否是实现我需要的最佳方法。

另一个想法是分叉。但是,这很聪明吗?如果我更改了 fork A 的代码中的某些内容,是否容易将这些更改合并到 fork B 中?

4

3 回答 3

4

git 中的分支和分叉一点也不差,因为合并支持很棒(可能是所有 VCM 中最好的)。

就个人而言,我不喜欢将项目分支或分叉以提供不同的定制,因为它很快就会变得非常困难,例如,如果你有 15 个不同的部署,你会怎么做?

我认为更好的方法是构建应用程序,使其根据某些参数表现不同。我很清楚有时实现非常不同,所以这可能不再有用了。另一种方法是在作为应用程序服务的 GEM 中构建应用程序的核心,您为每个客户端自定义的唯一内容就是视图。当然,GEM 应该足够通用以提供您需要的所有服务。

请与我们分享您的决定,因为您的问题没有最佳答案。

于 2011-04-28T09:46:23.563 回答
0

我同意@Augusto。您可以在 2 个不同的环境中运行您的应用程序,即 production_A 和 production_B。从那里,您可以使用SettingsLogic来定义基于Rails.env的配置,然后在选择要使用的视图时在您的应用程序中引用这些设置。

于 2011-04-28T10:16:13.437 回答
0

在构建或运行时让您在类型之间进行产品选择可能会更好,这样您就可以使用一组源代码。

否则,分支和合并是可能的,但是您将在管理事物时遇到更多困难。分叉基本上是在这个级别分支。

于 2011-04-28T09:44:37.623 回答