ken*_*enn 9 ruby-on-rails ruby-on-rails-3
这是我们的基本要求:
为此,我可以看到实现该目标的几个选项:
Rails::EngineRails::Application最明显的答案是Git分支,具有完全的灵活性.
但是我不确定这是不是一个好主意,因为代码库基本上是共享的,主线有更多的活动 - 赶上rebase/merge可能只是额外的麻烦.
我们希望尽可能地将原始版本和自定义版本分离.换句话说,我们希望在原始和定制之间尽可能减少冲突.
Rails::Engine或者Rails::Application似乎是一个很接近的想法(我不熟悉Rails引擎),但我不明白如何拥有OurApp::Application和OurCustomizedApp::Application在一个地方,并在全球和动态之间切换它们.
有可能会很高兴:
RAILS_APPconfig/database.yml是config/customer1/database.ymldeploy.rb对Capistrano的(可能与config/servers.yml和config/customer1/servers.yml定义角色和IP?)是否有针对我们要求的做法/惯例?有什么建议?
我们的应用程序运行在Ruby 1.9.2 + Rails 3.0.3上.
UPDATE
我们把它作为Git分支开始.我们创建了一个rake任务来生成一个文件,config/branch其中包括"master"或"custom"等文本,application.rb在bootstrap时读取它.配置喜欢database.yml或servers.yml现在住在config/mainline/或config/customized/,application.rb相应地处理它们.
config.paths.config.database = "config/#{branch}/database.yml"
Run Code Online (Sandbox Code Playgroud)
不完美,但现在还不错.当我们找到更好的方法时,我会更新.
我知道这不是您想要的精确答案,但我相信 Git 将是自定义应用程序和添加逻辑来处理其他配置文件的最少量的工作 - 而且是最容易长期管理的,修改部署文件并管理(可能)新的 css/js/模板文件。
使用变基和合并将大大减少出错的可能性,并且只要您定期保持分支同步,就不应该有任何严重的问题来保持它们都是最新的。毕竟,这就是 Git 所擅长的!;)
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |