ruby – 如何在repo / project中跟踪系统特定的配置文件?

我有一个 ruby项目,数据库主机和端口可能在开发和生产上有所不同.我需要一种方式来为这两种环境的脚本获得不同的值.

项目应该是完整的 – 所以应该有一些方法来指定认值.我不希望克隆丢失配置文件.所以完全忽视他们将不会奏效.

你如何用git解决这个问题?

解决方法

我建议使用:

>一个模板配置文件(具有变量名称文件代替主机和端口值)
>一个脚本,可以根据环境(由脚本检测)替换那些具有适当值的变量名称

那么Git解决方案就是git attribute filter driver(另见GitPro book).

A filter driver consists of a clean command and a smudge command,either of which can be left unspecified.
Upon checkout,when the smudge command is specified,the command is fed the blob object from its standard input,and its standard output is used to update the worktree file.
Similarly,the clean command is used to convert the contents of worktree file upon check-in.

这样,由smudge引用的脚本(由Git管理)可以通过特定于环境的值替换所有变量,而clean脚本将其内容还原到未触摸的配置文件.

当您在产品环境中检出您的Git回购时,涂抹过程将在生成的工作树中产生类似产品的配置文件.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...