我们有一个想要进行版本控制的 PHP 项目。现在,我们三个人正在开发该项目的开发版本,该版本位于一个外部文件夹中,我们所有的 Eclipse IDE 都链接到该文件夹中,因此没有版本控制。
对此进行版本控制的正确方法和最佳方法是什么?
我们设置了一个 SVN,但我们只需要找到一种很好的签入和签出方法,以便我们在开发服务器上进行测试。有任何想法吗?
我们有一个想要进行版本控制的 PHP 项目。现在,我们三个人正在开发该项目的开发版本,该版本位于一个外部文件夹中,我们所有的 Eclipse IDE 都链接到该文件夹中,因此没有版本控制。
对此进行版本控制的正确方法和最佳方法是什么?
我们设置了一个 SVN,但我们只需要找到一种很好的签入和签出方法,以便我们在开发服务器上进行测试。有任何想法吗?
我们处于类似的情况,这就是我们最终做的事情:
您还可以在他们的工作站上为每个团队成员设置单独的开发服务器。我发现它加快了速度,尽管您确实有更多的设置时间。
我们不得不使用单一的开发服务器,因为我们使用的是专有的 CMS 并且遇到了许可问题。所以我们的提交后挂钩是一个简单的 FTP 机器人。
这是我们所做的:
在项目开始时,用户创建一个分支并在他们的个人 VM 上检查它,并获取数据库的干净副本。他们做他们的工作,边做边做。
一旦他们在自己的个人空间中完成了所有工作,他们就会登录到集成服务器并检查他们的分支,运行他们的测试等。当所有通过他们的分支时,他们就会合并到 Trunk 中。
重建主干,运行全套测试,如果一切顺利,它会获得大的批准印章,在 SVN 中标记,并在晚上结束时提升到生产。
如果在任何时候其他人进行了提交,我们会收到一封电子邮件,并且可以将这些更改合并到我们的各个分支中。
Beanstalk具有内置的提交后挂钩,用于部署到开发、登台和生产服务器。
使用 subversion 进行 PHP 开发的一种方法是为一个或所有三个开发人员设置一个存储库,并使用这个存储库,更多地作为同步工具,而不是真正的版本控制。
你可以,
做一个回购
添加项目的整个 PHP 文档结构
将此 repo 的副本签出到开发服务器上的正确位置
使用 svn 钩子,在提交时激活
每当团队中的任何人签入任何代码时,此挂钩都会自动更新开发服务器的内容。
挂钩位于:
svn_dir/repo_name/hooks/post-commit
可能看起来像:
/usr/bin/svn up /path_to/webroot --username svn_user --password svn_pass
这会将您在开发服务器上的工作副本更新为最新的签入。
分发的东西呢?例如,您可以从 Mercurial 开始,尝试不同的工作流程,看看哪一个最适合您。
你们每个人都可以在本地运行它,也可以在自己的开发服务器上运行它(甚至是同一个具有不同端口的服务器......)。
一种可能的方法(可能有更好的方法):
你们每个人都应该有自己的签出版本的项目。
在您的计算机上拥有服务器的本地副本,并全天在那里对其进行测试。然后在每天(或任何时候)结束时,将准备测试的任何内容合并在一起,然后将其签出到开发服务器并进行测试。
另一个可用于构建的工具是TeamCity,它可免费用于 20 种构建配置(对于大多数小型公司/项目来说足够了)。这样您就可以运行测试以及安排构建。