【问题标题】:Version control PHP Web Project版本控制 PHP Web 项目
【发布时间】:2010-09-05 12:27:28
【问题描述】:

我们有一个想要进行版本控制的 PHP 项目。目前,我们三个人正在开发该项目的开发版本,该版本位于一个外部文件夹中,我们所有的 Eclipse IDE 都链接到该文件夹​​中,因此没有版本控制。

什么是版本控制的正确方法和最佳方法?

我们设置了一个 SVN,但我们只需要找到一种好方法来签入和签出,以便我们在开发服务器上进行测试。有什么想法吗?

【问题讨论】:

    标签: php svn version-control cvs


    【解决方案1】:

    我们处于类似的情况,这就是我们最终要做的事情:

    • 设置两个分支——发布和开发分支。
    • 对于开发分支,请包含一个提交后挂钩,用于将存储库部署到开发服务器,以便您进行测试。
    • 准备就绪后,将更改合并到发布分支。我还建议在那里部署一个提交后挂钩。

    您还可以在每个团队成员的工作站上设置单独的开发服务器。我发现它加快了速度,虽然你确实有更多的设置时间。

    我们不得不使用单个开发服务器,因为我们使用的是专有 CMS,并且遇到了许可问题。所以我们的提交后挂钩是一个简单的 FTP 机器人。

    【讨论】:

      【解决方案2】:

      这是我们的工作:

      • 每个开发人员都有一个虚拟机,其配置类似于我们的集成服务器
      • 集成服务器为 Trunk、每个用户提供空间,并为分支提供一些插槽
      • 生产服务器
      • 提交提交时,Subversion 中的挂钩会发送到电子邮件

      在项目开始时,用户创建一个分支并在他们的个人 VM 上检查它,并获取一个干净的数据库副本。他们做自己的工作,边做边做。

      一旦他们在自己的个人空间完成了所有工作,他们就会登录到集成服务器并检查他们的分支,运行他们的测试等。当所有通过他们的分支的东西都合并到 Trunk 中时。

      Trunk 已重建,全套测试已运行,如果一切顺利,它将获得大笔批准,在 SVN 中标记,并在晚上提升为生产。

      如果在任何时候由其他人提交,我们会收到一封电子邮件,并且可以将这些更改合并到我们的各个分支中。

      【讨论】:

        【解决方案3】:

        Beanstalk 具有内置的提交后挂钩,用于部署到开发、登台和生产服务器。

        【讨论】:

          【解决方案4】:

          在 PHP 开发中使用 subversion 的一种方法是为一个或所有三个开发人员设置一个存储库,并使用这个存储库作为同步工具,而不是真正的版本控制。

          你可以,

          • 做一个回购

          • 添加项目的整个 PHP 文档结构

          • 将此 repo 的副本签出到开发服务器上的正确位置

          • 使用 svn 钩子,在提交时激活

          每当团队中的任何人签入任何代码时,此挂钩都会自动更新开发服务器的内容。

          钩子驻留在:

          svn_dir/repo_name/hooks/post-commit

          可能看起来像:

          /usr/bin/svn up /path_to/webroot --username svn_user --password svn_pass

          这会将您在开发服务器上的工作副本更新为最新的签入。

          【讨论】:

            【解决方案5】:

            分布式的东西呢?例如,您可以从 Mercurial 开始,尝试不同的工作流程,看看哪一个最适合您。

            【讨论】:

              【解决方案6】:

              你们每个人都可以在本地运行它,或者在你自己的开发服务器上运行它(甚至是同一个具有不同端口的服务器......)。

              【讨论】:

                【解决方案7】:

                一种可能的方式(可能有更好的方式):

                你们每个人都应该有自己的项目签出版本。

                在您的计算机上拥有服务器的本地副本,并在那里进行全天测试。然后在每天(或任何时候)结束时,将准备测试的任何内容合并在一起,然后将其签出到开发服务器并进行测试。

                【讨论】:

                  【解决方案8】:

                  另一个可用于构建的工具是TeamCity,它可免费用于 20 种构建配置(对于大多数小型公司/项目来说已经足够了)。这样您就可以运行测试以及安排构建时间。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2021-05-21
                    • 1970-01-01
                    • 2010-11-30
                    • 2011-09-01
                    • 2012-05-31
                    • 2012-08-30
                    • 2021-03-25
                    • 2011-07-02
                    相关资源
                    最近更新 更多