【发布时间】:2010-09-14 01:13:01
【问题描述】:
像许多项目一样,我们部署到许多环境、QA、UA、开发人员主干等。
在 SVN 中存储敏感配置参数的最佳方式是什么?或者,您不应该只在服务器上维护一个包含凭据的较小的未版本化文件吗?
主要是,我们不希望向每个开发人员公开生产凭据。
【问题讨论】:
像许多项目一样,我们部署到许多环境、QA、UA、开发人员主干等。
在 SVN 中存储敏感配置参数的最佳方式是什么?或者,您不应该只在服务器上维护一个包含凭据的较小的未版本化文件吗?
主要是,我们不希望向每个开发人员公开生产凭据。
【问题讨论】:
我根本不会在存储库中存储配置信息。这样您就不必担心 SVN 在更新源代码时会尝试更新配置。
【讨论】:
我同意亚当的观点。如果它不能使从事该项目的每个人都受益,那么它不应该受到版本控制。如果有人签出您的代码副本,您的个人项目文件会帮助他们吗?可能不是。它很可能只会把事情弄得一团糟。
【讨论】:
我宁愿提供配置示例而不是真正的配置文件。在我的项目中,根目录中有setup.default.php 文件,每个用户都需要将其复制为setup.php 并修改以匹配本地环境。此外,为了防止检入自定义设置文件,.svnignore 中有一条规则。
$ echo 'setup.php' > .svnignore
$ svn propset svn:ignore -F .svnignore .
【讨论】:
这也是我遇到的问题。我认为答案是签入模板(例如您使用 setup.php.default 的模板),然后使用 Phing 等自动化工具推动开发。如果您在 setup.php 文件中使用可识别的标记,那么 Phing 将能够用单独的服务器值替换这些标记。此外,一个简单的一步直播将是一个有用的过程。
【讨论】: