使用ping和SVN的生产和开发环境


Production and Development environment using Phing and SVN

我有一些关于开发和部署的问题。我尽量说清楚:

指出:

1-我使用Codeigniter为我的项目。我在我的database.php配置文件中设置了两个环境:开发和生产,当然有两个不同的设置。

2-我在同一台服务器上有两个域,一个用于开发(dev.domain.com),另一个用于生产(domain.com)

3- SVN存储库在同一台服务器上,并且它也在子域(svn.domain.com)下

4-在本地,我使用MAMP服务器,我有一个虚拟主机进行测试。此外,我使用Netbeans和Git来管理repo (Git -svn命令)

5-我读了其他类似的帖子,但我认为我的项目有一些差异需要考虑

问题:

我想在本地进行更改,然后使用Phing将更改部署到开发环境。这个环境只是用于测试目的,我想保持我的生产环境运行,但是如果我添加了一些新特性,我想在将它们添加到生产环境之前在一个真实的环境(服务器)中测试它们。

1-配置文件发生了什么?如果我部署开发环境,数据库配置也应该改变。我可以用Phing这样做,但这样我的工作树就会有变化,我需要先提交它,然后在本地工作时再修改它们。

2-我应该在每个发布到生产的版本中都使用分支吗?我可以在开发环境中执行git svn rebase,但是在生产环境中会发生什么呢?

我脑子里都是一团乱麻。你能让我清醒一下吗?

为DEV和PROD使用2个独立的分支(或trunk+branch),对Phing使用不同的配置和不同的部署目标(每个"branches")

在调试后将已测试的更改从DEV合并到PROD,在PROD树中标记合并(和工作)的修订,而不需要额外的分支

PS -同时使用Git和SVN对我来说似乎是多余的解决方案