你如何看待Subversion中不同系统上配置文件的部署?

Chr*_*der 7 svn version-control configuration

Subversion是更新我们服务器上的Web应用程序的好方法.通过简单的svn update所有更改文件得到......好吧,改变了.

除了无处不在的配置文件,例如config.php包含数据库访问配置,服务器路径等的配置文件,因此在我的本地开发系统和远程服务器上是不同的.

使用该update命令,服务器上修改的文件不会被覆盖,但如果我在本地更改文件并提交它,服务器将获取错误的配置文件.

但是我也不想设置svn:ignore属性,因为配置文件属于项目.

是否有Subversion机制可以让我轻松处理这些类型的文件?或者是解决此问题的唯一方法是在配置文件中进行系统切换,这将决定执行系统并相应地设置配置?

Ali*_*man 1

我发现最简单的方法是打开机器的主机名。我有一个 .ini 文件,其中包含一个常规部分,该部分也针对生产、测试​​和开发系统覆盖了该部分。

[general]
info=misc
db.password=secret
db.host=localhost

[production : general]
info=only on production system
db.password=secret1

[testing : general]
info=only on test system
db.password=secret2

[dev : general]
info=only on dev system
db.password=secret3
Run Code Online (Sandbox Code Playgroud)

因此 dev:db.password == 'secret3',但 dev:db.host == 'localhost',来自原始的 'general' 组。

“生产”、“测试”和“开发”可以是计算机主机名,或者它们是从配置控制脚本中的某些其他机制设置的别名。