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

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

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

有帮助吗?

解决方案

我们遇到了类似的情况,这就是我们最终所做的:

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

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

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

其他提示

这是我们所做的:

  • 每个开发人员都有一个配置类似于我们的集成服务器的虚拟机
  • 集成服务器具有用于主干、每个用户的空间以及用于分支的几个插槽
  • 生产服务器
  • 当提交时,Subversion 中的挂钩会指向电子邮件

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

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

重建主干,运行全套测试,如果一切顺利,它就会获得批准,在 SVN 中标记,并在晚上结束时升级到生产环境。

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

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

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

你可以,

  • 制作一个回购协议

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

  • 将此存储库的副本检出到您的开发服务器上的正确位置

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

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

钩子位于:

svn_dir/repo_name/hooks/提交后

可能看起来像:

/usr/bin/svn up /path_to/webroot --用户名 svn_user --密码 svn_pass

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

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

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

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

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

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

您可以用于构建的另一个工具是 团队城市 它免费提供 20 种构建配置(对于大多数小公司/项目来说足够了。)这样您就可以运行测试并安排构建。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top