管理Web应用程序的开发与生产环境?

时间:2009-08-26 08:32:17

标签: eclipse version-control project-management

我已经完成了我一直在研究的Web应用程序的核心。因为我是唯一一个本地开发的开发人员(灯堆栈)而没有使用版本控制(可能是愚蠢但无论如何......)。现在它已经接近生产准备,我有几个其他开发人员和我一起工作,所以我为我的代码设置了一个存储库。

这是我的问题:我仍然希望能够在发布到生产之前先在本地测试任何更改。如何使用存储库来管理它,而不必维护我的代码的两个版本(我必须手动同步)?首先,生产代码在这里有一些差异(例如数据库常量等)。我希望能够在我的本地存储库中更改我的代码,在我的本地apache服务器上测试它,然后直接将代码检查到生产中(这是否可能使用eclipse)?

我正在使用eclipse和subversion(php代码)。我知道我问了很多问题,但希望你能理解我想要做的事情......我认为它很常见。感谢。

3 个答案:

答案 0 :(得分:2)

除了你已经得到的优秀答案之外,我还想强调一下,如果您的开发和生产代码之间存在差异,就会增加风险。您应该在两个位置使用相同且经过良好测试的代码;应该在配置文件中表示环境之间的任何差异。源代码管理中的任何配置文件都只应该是样本;您的部署脚本不应将新配置文件推送到生产环境。

这与标记版本和模仿生产的临时环境相结合,可以帮助您顺利地将代码提升到生产环境。

答案 1 :(得分:1)

听起来你没有创建任何分支或标签,并且可能有一个没有标记的“主干”。最佳实践将要求您拥有当前稳定代码的主干,您开发的分支以及生产站点上实际使用的标记。有short description and diagram on Wikipedia

当然,这只是最好的做法。您的项目听起来很小,您可以将代码拆分为代码库中的开发/目录和生产/目录。签入开发目录的代码,一旦完全测试了更改,就将其合并到生产目录中。

无论您是以正确的方式还是以简单的方式进行操作,都必须 将开发代码与生产代码分开。随着您添加更多开发人员,开发代码库越来越不可能稳定,因为人们正在检查尚未完全测试但不完整的代码。花一点时间来管理两个代码分支将为您节省很多麻烦。

答案 2 :(得分:1)

我会建议一些事情

  1. 在SVN中使用标签/分支。代码生产就绪后,使用唯一名称对其进行标记。
  2. 设置集成测试的临时区域。在发布标记为暂存之后,将其从您的vcs中拉出并将其复制到暂存区域。这可以像不同的目录树或服务器的第二次安装一样简单。
  3. 将常量放入可以复制/合并到登台和部署目录的单独文件中
  4. 针对开发人员测试分阶段版本,以确保一切正常,就像在开发环境中一样。当我确信它正在工作并准备升级时,我会指向生产数据库。测试它也适用于prod。
  5. 一旦所有内容都在暂存中运行,请更新生产副本。我建议您创建一个干净的部署目录,然后在复制/合并配置设置后将整个部署复制到生产服务器。
  6. 这是我多年前处理perl / cgi的方法而且效果很好。 SVN可以更好地处理标签/分支,因此应该更容易处理。一旦我们在推送文件之前开始暂存文件,我们就遇到了很少的生产问题。