您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > cvs
从CVS到SVN
作者:网络转载 发布时间:[ 2014/1/7 17:20:27 ] 推荐标签:CVS SVN

软件包(SoftWare Package)
具有特定的功能,用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类。应用软件包与特定的应用领域有关,又可分为通用包及专用包两类。通用软件包根据社会的一些共同需求开发,专用软件包则是生产者根据用户的具体需求定制的,可以为适合其特殊需要进行修改或变更。

二、cvs
1,CVS服务器(文件版本库)
  CVS(Concurrent Versions System)是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。Concurrent有并发的、协作的、一致的等含义。实际上CVS可以维护任意文档的开发和使用,而不仅仅局限于程序设计。CVS维护的文件类型可以是文本类型也可以是二进制类型。CVS用Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。CVS基于客户端/服务器的行为使其可容纳多个用户,这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的。
2,CVS的基本工作思路
  在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序,由源代码库管理员统一管理。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后用户可以在本地任意修改,后用CVS命令进行提交,由CVS源代码库统一管理修改。这样,好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。
  它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取新的代码。它的无限制的版本管理检出(check out:)的模式避免了通常的因为排它检出模式而引起的人工冲突。它的客户端工具可以在绝大多数的平台上使用。 CVS被应用于流行的开放源码工程中,CVS内建了客户机/服务器存取方法,所以任何一个可以连到因特网上的开发者都可以存取在一台CVS服务器上的文件。
  在传统的版本控制系统中,一个开发者检出一个文件,修改它,然后将其登记回去。检出文件的开发者拥有对这个文件修改的排它权。并且只有检出那个文件的开发者可以登记(check in:)所做的修改。(当然对于管理员有很多方法可以超越这个限制。)  CVS通过它的无限制的检出模式解决了这个问题。当多个开发者对同一个文件作了修改CVS会检测,并且自动合并那些只要不是对代码的同一行所作的改动。
3,CVS 术语
  Revision (修订版本)--文件历史记录中的被开发者提交的变化。一个修订版本是一个时常变化的项目的 snapshot (瞬态图)。
  Repository (源代码库)--CVS 存储所有修订版本历史记录的地方。每个项目都有自己的一个确定的源代码库。
  Working copy (工作拷贝)--开发者对文件作出修改时文件所在的拷贝。
  Check out (检验)--从源代码库中申请一份工作拷贝。该工作拷贝反映的是取出时项目的瞬时状态。当开发者对拷贝作出修改时,必须运用 commit (提交)和 update (更新) 命令来 “发布”变化和查看其他开发者所作的修改。
  Commit (提交)--将工作拷贝中的变化输入中央源代码库。
  Log message (日志信息)--提交修订版本的时候,附带描述变化的注解。通过查阅记录信息,人们可以获得一个当前项目进程的总结。
  Update (更新)--从源代码库中取出别人的修改数据,将其输入自己的工作拷贝,并显示自己的工作拷贝是否有未提交的修改。注意,不要和 commit (提交)混淆,更新和提交是一对互补的指令。记住: Update 将使工作拷贝和源代码库拷贝保持同步更新。
  Conflicts (冲突)--两个开发者对同一个区域所做的改动都提交给主版本时出现的情况,在 CVS 觉察并指出这个冲突后,开发者必须解决该冲突。
4,日常使用
  注意:第一次导出以后,不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。
  将文件同步到新的版本cvs update 养成“先同步,后修改”的习惯, CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突,并自动将冲突部分用
  >>>>>>
  content on cvs server
  <<<<<<
  content in your file
  >>>>>>
标记出来,由你确认冲突内容的取舍。版本冲突一般是在多个人修改一个文件造成的,但这种项目管理上的问题不应该指望由CVS来解决。
注意:CVS的很多动作都是通过cvs commit进行后确认并修改的,好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯。

上一页12345下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd