首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》25.5 实现版本控制

关灯直达底部

版本控制是一门“艺术”,它适用于软件开发中的并发变更管理。通常,版本控制系统用作中央信息库或存档,它为访问和共享别人代码(或文档)提供一个可以控制的接口。

设想这样的情形,我们尝试去改进一些代码,但是却不幸将它弄坏,而且无论怎样也恢复不到原来的样子。或者,我们或客户认为网站早期的版本更好。或者,因为法律的原因必须回到早期版本。

设想另一种情形,开发队伍的两个成员希望对同一个文件进行修改。它们可能同时打开并编辑该文件,覆盖对方的修改。它们可能都工作于当地副本上,但是以不同的方式修改。如果可能发生这样的事情,必须让一位编程人员等待另一位编程人员完成对该文件的修改。

使用版本控制系统,可以解决所有这些问题。该系统可以记录信息库里每一个文件的修改情况,这样,不仅可以看到对它现在的描述,也可以清楚地了解到过去任何时候它的样子。版本控制系统的这个特性可将弄乱的代码恢复到已知的可工作的版本。也可以对一系列的特定文件设置标签,将其作为要发布的版本,这就意味着可以在这些代码的基础上继续开发,也可以随时获得已发表版本的副本。

版本控制还有助于解决多个编程人员合作编写程序的问题。每个编程人员可以在信息库里获取代码的一个副本(称为checking it out),并且当他们完成修改后,将这些修改提交到信息库(称checked in或committed)。版本控制系统也因此能够跟踪谁对某系统做了什么修改。

通常,这些系统还有管理并发更新的优点。并发更新是指两个编程人员可能在同一时刻修改同一个文件。例如,假设John和Mary都获取了他们所做项目的最近发布的一个副本。John完成了对某一文件的修改并将其提交到信息库。Mary也修改了那个文件,也试图提交。如果他们修改的不是文件的同一部分,版本控制系统就会将两个版本的文件合并。如果他们的修改互相冲突,系统将通知Mary并显示两种不同的版本。她就可以调整自己的代码以避免冲突。

大多数UNIX开发人员和开放源代码开发人员使用的版本控制系统是CVS。CVS是并发版本系统的缩写。CVS也是开放源代码。它与每个版本的UNIX捆绑在一起,也可以将其用于运行DOS或Windows的PC机和Mac机。它支持客户端-服务器模式,因此如果CVS服务器在网上是可见的,也可通过互联网进行连接,并从任何机器提交或获取代码。它用于PHP、Apache和Mozilla以及其他项目的开发,部分是因为这个原因。

从CVS的主页,可以为系统下载合适的CVS:http://ximbiot.com/cvs/wiki/。

尽管基本CVS系统是一个命令行工具,然而不同的附加软件给它提供了美观的前台,包括基于Java的前台和Windows前台。这些也可以从CVS主页访问到。

Bitkeeper是一个非常有竞争力的版本控制产品,它为几个高性能的开放源代码项目所使用,其中包括MySQL和Linux内核。它对开放源代码项目来说是免费的:http://www.bitkeeper.com/。

当然,也可以选择商业化的CVS软件。其中之一就是运行在大多数常见平台上的perforce,它支持PHP。请注意,虽然它是商业软件,但是可以在开放源代码项目主页中找到其免费的许可:http://www.perforce.com/。