PHP开发的版本控制

时间:2010-05-02 06:05:01

标签: php version-control project-management

我听过很多关于使用版本控制系统的优点,并想尝试一下。在过去的两年里,我在PHP中进行自由网页开发,两个月前我又聘请了两名程序员来帮助我。我很快就会招聘一个人。我们维护着4个网站,这些网站都是我自己的,我们其中一个人不断编辑。我自己学习PHP,从未在任何其他公司工作过。因此,我不熟悉版本控制,单元测试等等。

目前,我们的工作站上有开发服务器。当我们编辑网站的特定部分时,我们会将该特定部分的代码(例如/ news /或/ movies /或/ wallpapers /)从生产服务器下载到开发服务器,在本地进行更改并上传到生产环境服务器(无代码审查/测试)。因此,我们的开发服务器始终与我们的prod服务器过时。偶尔,当我们中的一个忘记从prod下载最新副本并覆盖最后一个更改时,这也会产生问题。我知道这非常非常愚蠢,但目前我们的prod服务器是唯一具有所有更新和最新更改的副本。

任何人都可以为我建议哪个版本控制系统最好?我对分布式版本控制更感兴趣,因为我们的所有代码都没有中央备份。我读到了Mercurial和Git,发现Mercurial被Mozilla,Sun,Symbian等用于几个大型开源项目中。那么您觉得哪一个对我更好?不仅版本控制,如果有任何其他包可用于使我当前的设置更好,请同时提及:)

6 个答案:

答案 0 :(得分:3)

听起来Git可以很好地实现你的目标。由于它是分布式的,因此可以在不连接中央服务器的情况下执行大多数操作(提交,恢复,差异,补丁),因此非常适合本地工作。您还可以避免某人将新代码推向生产的丑陋时刻,而其他人正在研究它,然后完成将这两个版本的代码合并在一起的复杂任务(git提供了一个用于执行此操作的有用工具,称为rebase)。

你注意到有一些使用Hg(Mercurial)的大项目,但是有一些使用Git的大项目,比如Linux Kernel,X.org,Android和Debian。

我在我的所有网站都使用git:它闪电般快速,高效且易于使用。


编辑:如果你想开始使用Git,我建议你在进入之前做一些阅读。从错误的脚开始可能会在以后产生一些可怕的影响。如果您遵循敏捷工作流程,则可能需要检查thisHere's一个网站,我从我的Git专有技术中学到了很多东西。

答案 1 :(得分:1)

您可以使用SVN,Git,Mercurial。

最大的挑战是让每个人都在使用版本控制方面受到纪律处分,而不是变得懒惰。

答案 2 :(得分:1)

即使您独自工作,版本控制也是一个令人难以置信的工具,当您与其他人合作时,它是不可或缺的。我建议使用git。它非常快,有一套非常好的可用工具,当然还有github.com。 Mercurial基本上和git一样好,但运行速度稍慢,没有github。

为什么要使用git,请阅读http://whygitisbetterthanx.com/

这是一个关于git开始的漂亮教程:http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html

答案 3 :(得分:0)

绝对是Mercurial。虽然您可以使用Git或SVN,但Mercurial有两个原因:

  1. Vs Git:与Windows的良好集成。
  2. VS SVN:它是分发的。
  3. 如果您不想自己运行Mercurial服务器(无论如何都很简单),可以使用许多服务。 Kiln + FogBugz是一个优秀的组合。还有CodeBaseHQ(也支持Git和SVN),Bitbucket等等。

    在你跳到它之前,我强烈建议你至少阅读Joel Spolsky's tutorial,但我强烈建议你也阅读Mercurial: The Definitive Guide

答案 4 :(得分:0)

对不起,我无意开始DVCS圣战。我要去试试Git。

答案 5 :(得分:0)

是的,版本控制会有所帮助。首先,我会看到两个重要问题:

  • 托管或自我管理?您想在服务器上自行托管,还是想要一项服务来为您处理?有理由采取任何一种方式,但如果你不是那样管理服务器寻找托管选项。

  • SVN或Git 还有其他人,但这些是顶级的开源竞争者。

优点和缺点(我的观点):

SVN :很好的教程,很容易掌握。培训要求很小(我做了一点)。 SVN与团队合作,许多项目等工作得非常好。由于分支机构数量有限(您可能不需要任何分支机构),因此它非常可靠。有很多与其他工具的集成。

Git :入门可能比使用SVN稍微粗糙一点。有些文档是好的,但很多都是假设对内部的相当透彻的理解。一旦你掌握了它,它具有很大的灵活性,但我已经看到几乎每个开始使用它的人在开始时都会绊倒。即使在与它合作数月之后,人们仍在讨论使用的最佳模式。对于单人项目(您想要跟踪历史记录)以及像GitHub这样的分布式项目来说,它真的很棒。我甚至为小型同地团队使用Git,因为我喜欢速度和灵活性。

考虑到你对你的团队所说的话,我可能会建议你尝试使用SVN。将有更好的资源来帮助你开始,你将不太可能对它感到沮丧。

希望这有帮助。