【问题标题】:Local, Testing and Production version control本地、测试和生产版本控制
【发布时间】:2012-02-09 17:43:44
【问题描述】:

我对版本控制非常陌生,如果可能的话,我希望得到一些帮助。

我想知道,这是控制 3 个开发环境的最佳方式:开发 > 测试 > 生产

  • 开发(Localhost 环境)- 在上传之前,所有开发的工作都在这里完成
    • 从事特定项目的每个人都应该有一个该文件夹的克隆(每个合作者及其用户,如果可能的话),并且用户的每次推送都将在此处发送到开发文件夹。
  • Testing - 应该是一个克隆文件夹,其中包含 Development 推送的数据,并使用 ftp 或任何协议自动与子域 testing 同步。
  • Production 是发布稳定更新的实时站点。
    • 应该是Testing的克隆,还是推送时的测试应该在这里上传数据?

当用户推送的文件与其他用户 1 分钟前推送的文件不同时,会出现冲突问题怎么办?当然可以有任务分离,每个人都做某些事情,但如果不是,如果 X 提交 submit.php 并且 Y 也提交了 submit.php 1 分钟前怎么办?

什么版本控制软件最适合?

【问题讨论】:

    标签: testing version-control versioning live


    【解决方案1】:

    如果您将其转换为 DVCS (Distributed Version Control System)、like Git,则您的每个“文件夹”都可以是代码存储库的实际克隆。

    这意味着你:

    • 将从您的本地开发推送到“development”存储库
    • 会从“development”推送到“testing”(或者更好的是,有一个“测试”任务负责development”并触发一些测试,如果检测到任何新的提交
    • 将从“testing”(如果测试正常)推送到生产环境

    另外,您不会接受非 fast-forward update 到远程仓库,这意味着任何冲突都将首先在本地解决,然后再被推送。

    【讨论】:

      【解决方案2】:

      如果您有一个大型团队,Git 非常棒,但恕我直言,Subversion (SVN) 更容易学习,并且仍然提供了一组很好的核心功能,可以满足您的需求。处理您上面提到的需求的一种常见方法是创建一个 subversion 存储库,其中包含三个文件夹,分别称为“trunk”、“branches”和“tags”。

      • 开发:发生在“主干”子目录中。
      • 预发布测试:发生在“分支”的智能命名子目录中,例如'RC1-测试'
      • 稳定版维护:发生在“tags”的带有版本标签的子目录中,例如'2.0'

      基本上,所有这些子目录都是您可以通过 SVN 导出命令创建的主干的分支。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        • 1970-01-01
        • 2021-03-08
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多