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

前端之家收集整理的这篇文章主要介绍了ruby – 如何在repo / project中跟踪系统特定的配置文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 ruby项目,数据库主机和端口可能在开发和生产上有所不同.我需要一种方式来为这两种环境的脚本获得不同的值.

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

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

解决方法@H_301_8@
我建议使用:

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

那么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回购时,涂抹过程将在生成的工作树中产生类似产品的配置文件.

猜你在找的Ruby相关文章