代码之家  ›  专栏  ›  技术社区  ›  Michal M

使用版本控制工作流进行Web开发

  •  6
  • Michal M  · 技术社区  · 17 年前

    简介:
    我在一个2人团队工作(我们将来可能会扩大)。
    我们有一个Web开发服务器和一个生产服务器。
    目前,当我们开始开发时,我们在本地主机上启动它们,然后将它们部署到web dev(我们可以通过安装的驱动器访问它),然后将这个“共享”驱动器的更改提交到SVN。Web开发的最后一个测试,从上到下的批准通过ftp传递到我们的生产服务器。
    (我听到林奇来了…)
    是的,我知道从一个位置共享文件并从那里提交文件都是错误的,但是当我了解SVN时,这并不是一个坏主意。现在我想改变它。

    所以,我知道版本控制的基本原理,现在它的工作方式是错误的。我浏览过维基百科和一些SVN页面,但我找不到一个完美的解决方案,它应该如何工作。

    你们中的一些经验丰富的人能建议这应该如何工作吗?

    我发现的事情:

    • 我们应该在我们的机器上制作本地拷贝
    • 然后我们将更改提交给SVN。

    我想知道的事情:

    • 如何在SVN提交后进行Web开发更新?
    • 如何将补丁部署到生产服务器?FTP文件?这就是你要做的吗?或者其他聪明的解决方案?
    • 关于Web开发工作流,我还需要知道其他任何信息。
    5 回复  |  直到 17 年前
        1
  •  6
  •   nickd    17 年前

    颠覆已经 post commit hooks 它允许您在提交时执行操作。

    您还可以查看CruiseControl.net或TeamCity之类的持续集成解决方案。

    我们的过程是单个开发人员处理本地配置。我们致力于颠覆和CruiseControl.net每次我们中的一个都会检查并构建系统。

    有一个更新安装程序的预定版本,每周运行一次,并在QA用来验证修复程序的服务器上更新安装。一旦修复得到验证,就有人(手动)将应用于生产站点上的QA服务器的更新应用到生产站点上。

        2
  •  2
  •   akauppi    17 年前

    我建议查看提交后挂钩,就像nickd建议的那样。如果提交失败,您甚至可以拒绝它(例如,您从一些“源”文件生成HTML文件,如果该生成失败,您可以期望此人在提交之前修复它)。

    • 如何在SVN提交后进行Web开发更新?
    • 如何将补丁部署到生产服务器?

    无论是自动的,通过钩子,或者你可以考虑在生产机器上手动“SVN更新”,这可以让你控制什么时候,什么版本,等等。

    这个 SVN book 是伟大的阅读。我们只能阅读相关章节,稍后再来了解更多内容。您使用的是主干和标签吗?它们是SVN使用和发布控制的面包和黄油。

        3
  •  2
  •   Jeff Busby    17 年前

    这就是我这几年来一直在做的事情。

    dev服务器-位于内部,包含灯堆栈、存储库和工作副本。这与生产服务器的软件版本相同。

    生产服务器-具有带有repo工作副本的临时环境,也具有带有非SVN版本项目(即活动站点)的生产环境。

    开发者-在他们的本地机器上有灯栈和存储库的工作副本。

    典型工艺:

    开发人员更新项目的工作副本。在本地副本上工作,当当前更改完成并且没有bug时,它们会检查复制回存储库。

    提交后挂钩更新dev服务器的工作副本。您可能希望手动执行此操作,尤其是当您的团队开始增长时。

    如果更改正在dev server上工作,则将手动更新临时环境上的工作副本。

    如果更改在临时环境中工作,那么我们将使用rsync将临时环境的工作副本中的任何更改推送到生产环境中。

    显然,这是一个非常一般性的解释,因为您希望将诸如单元测试之类的东西集成到流程中,但我希望这有帮助。

        4
  •  0
  •   Rad    17 年前

    我成功使用的模型如下

    • 使用分布式版本控制系统,如Mercurial或Git,而不是Subversion。
    • 所有开发人员都有一个本地存储库,它们在部署期间在本地提交该存储库。
    • 还有一个额外的测试存储库,所有开发人员在完成之后都会将更改推送到该存储库中。这是由QA检查和测试的
    • 如果测试的存储库一切正常,则会对其进行标记,然后将其推送到生产存储库中。
        5
  •  0
  •   Justin Johnson    17 年前

    我们的工作方式很简单,作为一个小团队,你可能会与之建立联系。

    • 开发在本地主机上完成,并提交给主干的一个分支。
    • 对于QA,分支与主干合并,而dev环境(它是主干的副本)只做了一个 svn up
    • 如果质量保证一切都好,我会 支持向量机 在实时环境中(也是主干的副本),我完成了。

    我还没有完成,但是可以通过添加一个提交后挂钩来自动更新开发环境(如其他人建议的那样)来简化这个过程。