目前我手动进行所有更新,这意味着当我对代码进行更改时,我会手动将更改的文件ftp到服务器。显然,我在玩火,所以我想开始使用一个更结构化的过程来发布我的php项目的更新。我使用带有Eclipse的Windows7作为我的IDE。我有一个linux开发框,你建议我使用哪个版本控制程序与Eclipse交互,从我的开发框中签出一个副本?进行更改并将这些更改提交回开发人员,测试代码并能够将更改提交到生产框中?(我假设这是正确的过程?)
Subversion或Git是不错的选择。它们都有集成到eclipse中的插件,可以满足您的需要。
他们确实使用了一些不同的范式,所以选择你最熟悉的范式。
我会使用类似git或mercurial的DVCS和分支。我使用了这里描述的分支模型的一个细微变化:
http://nvie.com/posts/a-successful-git-branching-model/
让我向您描述一下我的部署工作流程:
我有4个环境:
-
prod
:生产-即:现场 -
stage
:暂存服务器,也称为测试环境。这是代码升级为产品之前的最后一站。 -
int
:集成服务器 -
dev
:开发
每个开发人员都有自己的本地代码副本,并使用前面描述的分支模型。
集成环境不断地合并开发人员推出的东西(我使用一个简单的提交挂钩和一个shell脚本来完成这一任务。你也可以考虑使用更复杂的CI工具来完成这项工作)。Int将拥有最新的"出血边缘"/"最新和最伟大"的应用程序版本。单元测试是用来确保没有人破坏任何东西。
就在发布之前,代码库被转移到阶段。像功能测试和UA测试这样的东西就在这一点上完成了。如果一切看起来都很好,那么我从一个阶段推到另一个阶段,代码就活了。
我个人使用NetBeans作为我的IDE——有一些插件可以很好地集成到git/mercial。
最后:开发工作流程/部署策略是您的项目/组织所独有的。我刚刚(大致)描述了我的观点——所有的观点可能适用于你,也可能不适用于你——但我希望你现在对理想情况下的工作方式有了一个想法。