版本控制PHP Web项目

时间:2008-08-07 16:46:33

标签: php svn version-control cvs

我们有一个我们想要版本控制的PHP项目。现在,我们有三个人正在研究项目的开发版本,该版本驻留在我们所有Eclipse IDE都链接到的外部文件夹中,因此没有版本控制。

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

我们已经设置了SVN,但我们只需要找到一种检查和退出的好方法,这样我们就可以在开发服务器上进行测试。有什么想法吗?

8 个答案:

答案 0 :(得分:26)

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

  • 设置两个分支 - 发布和开发分支。
  • 对于开发分支,包括一个将存储库部署到开发服务器的提交后挂钩,以便您进行测试。
  • 准备好后,将更改合并到发布分支中。我还建议在那里部署一个post-commit钩子。

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

我们必须使用单个开发服务器,因为我们使用的是专有CMS并遇到许可问题。所以我们的post-commit钩子是一个简单的FTP机器人。

答案 1 :(得分:5)

以下是我们的工作:

  • 每个开发人员都有一个配置类似于我们的集成服务器的VM
  • 集成服务器为Trunk,每个用户和分支的几个插槽提供空间
  • 生产服务器
  • 提交时,Hook会在Subversion中发送电子邮件

在项目开始时,用户创建一个分支并在其个人VM上进行检查,并抓取数据库的干净副本。他们做他们的工作,随时随地做出承诺。

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

重建Trunk,运行全套测试,如果一切顺利,它将获得批准的大标记,在SVN中标记,并在晚上升级为制作。

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

你可以,

  • 制作回购

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

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

  • 使用在提交时激活的svn挂钩

当团队中的任何人检查任何代码时,此钩子将自动更新开发服务器的内容。

Hook位于:

  

svn_dir / repo_name /钩/提交后

可能看起来像:

  

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

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

答案 4 :(得分:2)

分发的东西怎么样?您可以从Mercurial开始,尝试不同的工作流程,并查看最适合您的工作流程。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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

在计算机上安装服务器的本地副本,并在一天内对其进行测试。然后在每天结束时(或者每当),将您准备好测试的任何内容合并在一起,然后将其检出到开发服务器并进行测试。

答案 7 :(得分:0)

您可以用于构建的另一个工具是TeamCity,它可以免费用于20个构建配置(足以满足大多数小公司/项目。)这样您就可以运行测试以及计划构建。