【问题标题】:Subversion and Symfony 2颠覆和 Symfony 2
【发布时间】:2012-01-27 23:51:48
【问题描述】:

我的团队即将开始使用 Symfony2 框架的 Web 项目。我们将使用 SVN 进行版本控制(这是不可协商的,对不起 git 粉丝)。我正在尝试概念化我们将如何能够修改代码以及顺利部署到我们的实时服务器。

这是我们正在使用的一般系统:

  • SVN 服务器
  • 部署服务器
  • 每个团队成员都应该在自己的机器上进行本地开发

我希望我们的系统如何工作:

  • 开发者将网站代码签出到本地机器
  • 通过 Eclipse IDE 开发
  • 在他们的机器上调试、测试和启动站点的本地副本(连接到部署服务器以访问数据库)
  • 检查对 SVN 存储库的更改
  • 主要开发人员将更新的代码部署到实时服务器

这看起来是一个很好的工作流程吗?唯一尴尬的部分是它需要每个开发人员将 W/LAMP 堆栈部署到他们的本地机器上。但是,这仍然是可行的。

此外,他们是否有任何特定于 Symfony/SVN 的工具或命令可以使该工作流程更易于实施?

【问题讨论】:

  • 对不起,但很好奇为什么 svn,而不是 2012 年的 mercurial/git?
  • 这是针对软件工程课程的,这是他们的约束。此外,该团队对 SVN 最为熟悉。
  • 我已经了解了十几个使用svn多年的人如何在大约半小时内使用mercurial。在他们意识到 mercurial 有多酷之后,他们都向我表示感谢 ;-)
  • 出于好奇,我的印象是它需要某种商业许可才能使用。这是真的,还是他们的免费版本?
  • 它没有。 Mercurial 和 git - 完全免费供任何使用的 SCM

标签: svn symfony


【解决方案1】:

除了一件事,一切看起来都很好,很明显

更新的代码会自动部署到实时服务器

不要那样做

确实,部署是一个自动执行的过程,总是应该由用户发起。总是,没有例外

我还要添加另一个步骤 - 持续集成服务器,以运行您的测试并计算各种指标并进行一些分析

【讨论】:

  • 好点!如果开发人员签入损坏或错误的代码,这肯定会导致问题。
  • @user8709:就在今天,我看了这些幻灯片:slideshare.net/kastner1/… - 我希望它们也能帮助你建立你的管道
【解决方案2】:

查看一些未来可能令人头疼的问题:

  1. 如果

开发者将网站代码签出到本地机器

如何确保从传播的仅限本地数据(配置?)

  1. 如果每个开发人员

连接到部署服务器以访问数据库

当您获得解决方案时,您对“我们更改了数据库结构”和“数据不同步”灾难的情况没有任何解决方案

  1. 第 3,4,5 项 together 看起来像是在使用巨大的零星混合提交而不是“经常提交,快速提交”

  2. 我没有看到任何提到自动化单元和功能测试

【讨论】:

  • 为确保开发人员不会签入不必要的本地配置,我们将在提交到存储库时忽略任何此类文件。不过,我确实看到了您对数据库的看法。这是我会考虑的事情。此外,我们确实计划使用自动化单元测试,我设想开发人员在代码签入之前在本地运行测试套件,以确保一切正常。
  • @user8709:测试也应该由持续集成服务器运行
  • @user8709 - 又遇到了一次糟糕的旅程,当开发人员的数据结构配置将被更改时(与数据库相同的情况)
【解决方案3】:

【讨论】:

    【解决方案4】:

    我建议像 Hudson 这样的 CI 在每次提交后自动部署。

    用 ANT 编写的部署:

    清除缓存 删除数据库 架构更新 负载夹具

    运行 PHPUnit 测试

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      相关资源
      最近更新 更多