cvs是concurrent version System(并行版本系统)的缩写,用于版本管理,如果大家曾经参与过多人
协作开发的项目,想必大家都有这样痛苦的经历:由于多个人同时修改同一个文件,自己辛辛苦苦修改的
程序被别人彻底删除了,另外,如果你的软件程序已经发布了四个版本,而这时候用户需要你修改第三个
版本的东西,也许你会因为只保存了最新的版本而痛苦,如果你修改了别人的源程序,不过只是修改了很少的一个部分,比如增加了一个方法,这时你想让其他人看到你对程序的修改部分,而不是让大家对全部程序都阅读一遍,那么采用与cvs搭配使用的文件比较工具将会大大提高工作效率。
采用cvs进行版本管理的另一个好处是你不用自己备份自己的源程序,否则一个项目进行下来,可能备份的程序连你自己都搞不清楚版本了,不过不要紧,有了cvs这一切都变得异常简单,你所要做的仅仅是将自己的代码的每一个版本提交一份到服务器上,其他的一切都由cvs为你做好了。
cvs工作原理:
cvs是典型的c/s结构的软件,因此他也分成服务器和客户端两部分,与我们平时工作息息相关的部分是客户端,他也是我们天天与之打交道的部分,至于服务器端只要在最开始设定好,以后基本就不必进行其他操作了。
cvs的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序,由仓库管理员统一管理这些源程序,这样,就好像只有一个人在修改文件一样,避免了冲突,每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地,用户做的任何修改首先都是在本地进行,然后用cvs命令进行叫,youcvs仓库管理员统一修改,这样可以做到跟踪文件变化,冲突控制等等。
使用cvs进行版本控制需要服务器端和客户端的两个软件,大家在选择时要注意版本的兼容问题,否则会出现莫名其妙的错误,我用的客户端的软件是WinCvs 1.3.17.1Beta17(Build 1),而服务器软件是CVSNT,版本是CVSNT 2.0.41,这两者结合不会出现兼容错误,大家放心使用。
CVS基本概念
Repository:仓库,它是cvs服务器的根目录,我们所有的工作都保存在这个仓库中,包括源代码和这些代码的全部历史,你可以吧Reponsitory想象成一个仓库,仓库里有一个个袋子,每个袋子就是我们的一个工程,这些袋子之间不会相互影响,这些袋子,cvs术语又称为:模块(module)。
Module:模块,就是我们上面所说得就是仓库里所说的"袋子",里面放的是一个项目的所有文件(包括源代码,文档文件,资源文件等等),在物理上,module是cvs服务器根目录下的第一级子目录。
Import:导入,我们本地有一个软件项目,里面有许多各种类型的文件,都需要用cvs进行版本管理,那么第一步就是把这个软件项目的整个目录结构都Import都cvs的仓库中去,导入后,在仓库中,即会创建一个新的”袋子“,即模块module。
Checkout:导出,将仓库中的一个”袋子“(module)中的东西导出到本地的工作目录下,然后我们可以在wincvs的管理下,进行工作,修改其中的内容。
Commit:提交修改,我们在本地的工作目录下,对工程中的文件进行修改,而这些修改需要重新提交到cvs仓库中,这个就叫commit。
Update:同步,它与commit相对应,从仓库中的”袋子“(模块)中下载你同事修改过的文件,如果这个文件你本地也有,则会更新本地的拷贝,如果你本地没有,就会把新文件下载到你的本地。
Revision:文件版本,注意这是单个文件的版本,而不是整个项目的版本,单个文件每次的修改,经过commit之后,他的revision都要改变一次,单个文件的版本与整个工程产品的版本没有任何关系。
Release:发行版本,整个产品的版本。
Wincvs的工作模式:
1)您首先要让cvs管理员给您分配一个用户名和密码,先使用wincvs登陆到cvs服务器。
2)把本地需要cvs管理的原始目录导入import到cvs服务器上去,使之成为cvs服务器上仓库Reponsitory的一个module。
3)在本地硬盘上创建一个工作目录。
4)从cvs服务器的仓库Reponsitory导出checkout一个module到本地硬盘的工作目录。
5)从cvs服务器同步update你同事的修改到你本地工作目录,在工作目录上进行工作,在这个过程中,把这个文件的中间版本revision提交commit给cvs服务器。
当我们进行过上述流程后,以后再使用时,就只需要简化1)和5)步骤就可以了。
没有使用过cvs的朋友们,可以三四个一起模拟一下使用环境,你会发现很方便哦~
WinCvs简介
最新推荐文章于 2021-07-20 15:40:29 发布