精通版本控制管理系统之WinCVS

 

 

最近学了了版本控制的东西,总结了一点东西,和大家分享分享。主要学习了用的比较广泛的WinCSSSubversion,学习完后感觉很简单,只是需要知道几个常用的概念,importcheck-outupdatecommitmargen等常用的几个命令就够我们日常在公司的开发用的,如果是项目经理的话,需要知道多一点,如分配用户名密码,设置权限,打版本等。下面是我的一些总结:

 

1、  为什么要用版本控制

CVS Concurrent Version System(并行版本系统)的缩写,用于版本管理.如果大家曾经参与过多人协作开发的项目,大家肯定有这样的痛苦经历:由于多个人同时修改同一个文件,自己辛辛苦苦修改的程序被别人彻底删除了.另外,如果你的软件/程序已经发布了四个版本,而这时候用户需要你修改第三个版本的东西,也许你会因为只保留了最新版本而痛哭流涕。如果你修改了别人的源程序,不过只是修改了很少的一部分,比如增加了一个方法,这时你想让其他人看到你对这个程序的修改部分,而不是让大家对全部程序都阅读一遍,那么采用与CVS搭配使用的文件比较工具将会大大提高工作效率。 采用CVS进行版本管理的另一个好处是你不用自己备份自己的源程序,否则一个项目进行下来,可能备份的程序连你自己都搞不清楚版本了,不过不要紧,有了CVS这一切都变得异常简单,你所要做的仅仅是将自己的代码的每一个版本提交一份到服务器上,其他的一切都由CVS为你做好了。

2、  WinCVS工作原理

CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序.由仓库管理员统一管理这些源程序.这样,就好像只有一个人在修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地.用户做的任何修改首先都是在本地进行,然后用 CVS 命令进行提交,由 CVS 仓库管理员统一修改.这样就可以做到跟踪文件变化,冲突控制等等.

3CVS基本概念

Repository: 中文名称:仓库。它是 CVS服务器(可能在远程,也可能在本地)的根目录,我们所有的工作都保存在这个仓库中,包括源代码和这些代码的全部历史。你可以把Repository想象成一个仓库,仓库中有许多木桶,每个木桶就是我们的一个让CVS管理起来的工程。对于CVS来说,这些木桶之间是没有什么关联的,删除一个木桶不会影响别的木桶。我们所想象的木桶,在CVS术语中,又叫模块(Module)。

Module:中文名称:模块。就是上面我们所想象的仓库中的木桶,里面放的是一个项目的所有文件(包括源代码,文档文件,资源文件等等)。在物理上,ModuleCVS服务器根目录下的第一级子目录。

Import:中文名称:导入。我们本地有一个软件项目,里面有许多各种类型的文件,都需要用CVS进行版本管理,那么第一步就是把这个软件项目的整个目录结构都ImportCVS的仓库中去。经过这种导入,CVS将为你的项目创建一个新的木桶”----Module,即模块。 Checkout:中文名称:导出。指将仓库中的一个木桶”(Module, 模块)中的东西导出到本地的工作目录下,然后我们可以在WinCvs的管理下,进行工作,修改其中的内容。

西导出到本地的工作目录下,然后我们可以在WinCvs的管理下,进行工作,修改其中的内容。

Commit:中文名称:提交修改。我们在本地的工作目录下,对工程中的文件进行修改,这些修改,需要提交给CVS的仓库,这个过程,就叫Commit。你可以Commit一个文件,也可以Commit整个目录。

Update:中文名称:同步。它与Commit相对应,是从仓库中的木桶(模块)中下载你同事修改过的文件(别忘记你的项目有许多人共同参与),如果这个文件在你本地也有,就会更新本地的拷贝,如果你本地没有,就会把新文件下载到你的本地。

Revision:中文名称:文件版本。这是CVS中一个需要特别注意的概念,它指的是单个文件的版本,而不是整个项目的版本。基本上,单个文件每次的修改,经过Commit之后,它的Revision都要改变一次,比如从1.11.21.3等等。特别要注意,单个文件的版本(Revision)与整个工程产品的版本(Version,或者Release)可以没有任何关系。例如,整个产品现在发行1.0版本(Version 1.0)了,但是产品的源代码文件中,有的文件版本(Revision)可能是1.9, 有的是2.1,等等。这很容易理解,因为为了发行产品V1.0,我们需要对源代码进行多次修改编译。

Release:中文名称:发行版本。整个产品的版本,例如VC5.0, VC6.0等。

Tag:中文名称:标签。在一个开发的特定期,对一个文件或者多个文件给的符号名,一般是有意义的字符串,如“stable”,“release_1_0”等。比如,我们对某个文件的1.5版本加上标签:“memory_bug_fixed”,借助这个有意义的标签,我们可以理解1.5版本解决了内存Bug,所以说Tag赋予了版本一些文字含义。

4、  WinCVS的工作模式

1) 您首先要让CVS管理员给您分配一个用户名和密码,先使用WinCvs登录(Login)CVS服务器。

2) 把本地需要CVS管理的原始目录导入(Import)到CVS服务器上去,使之成为CVS服务器上仓库(Repository)的一个Module

3) 在本地硬盘上创建一个工作目录。

4) CVS服务器的仓库(Repository)导出(Checkout)一个Module到本地硬盘的工作目录

5) CVS服务器同步(Update)你同事的修改到你本地工作目录。在工作目录上进行工作,在这个过程中,把文件的中间版本(Revision)提交(Commit)CVS服务器。

 

   以上只是我总结出的一些常用的操作用的命令集概念,当然大家如果需要详细了解的话可以从我的下载中下载《精通版本控制之WinCVS》、《精通版本控制之SVN》,这两个文件中有这两种版本控制的详细操作步骤,是个很好的参考资料。另外我还总结了WinCVSSubversion的区别。

 

你可能感兴趣的:(职场,版本控制,休闲,WinCVS,CVS原理)