选择显示字体大小

团队开发利器cvs培训基础讲义


  一、cvs(concurrent version system)简介

  1、cvs机制

  cvs是rcs的前端工具,它是用于多用户并行开发的版本控制工具,它的最大特点 是使用了“copy-modify-merge”机制而不是“lock-modify-unlock”。通过使用 cvs生成一个存储文件的仓库(repository),存储在仓库中的每个目录叫做模块 (module),在修改时将相应的模块检出到工作目录中(working directory)生成对应的目录,所有的修改都在工作目录中完成,修改完成后再提交到仓库中生成新的版本号,并加以保存。

  cvs把文件保存在一个名叫仓库(repository)的地方,仓库中保存的文件并不是每个版本的副本,而是可以从任意版本回溯到初始版本的一些代码的主控信息,这样,就节省了大量的存储空间风靡全球的linux操作系统就是在大型分布式cvs系统上开发成功的。

  全球最著名的软件工程软件提供商rational sofdtware的clearcase是cvs的替代产品,比cvs稍有增强

  2、cvs的版本编号

  分为系统编号和用户编号

  系统编号是cvs自动给版本编的号码。cvs自动管理系统编号。单分支版本演化以1.0->1.1->1.2-...的方式顺序进行。

  用户编号是用户为了自己控制版本号码,或者统一版本号码,而对某一版本指定的编号。

  二、cvs建议开发流程

  为避免其他人更新时导致无法编译的错误,建议先在开发环境中开发,编译通过后在没有大的改动情况下放入cvs中进行管理,然后发布到测试及生产环境。

  以总公司网站开发为例,流程如下:

  开发环境(192.168.16.33) -> cvs(192.168.16.38) -> 生产环境(192.168.16.34)

  三、wincvs的使用

  1、如何设置本地工作目录:

admin -> preference -> wincvs -> home folder

  2、如何列出cvs服务器上的modules?

admin -> macros admin -> get the cvs modules

  cvsroot 模块下的文件modules控制着modules的显示,由系统管理员管理。

  3、如何将cvs服务器上的modules取到本地工作目录?

  选中待取module -> create -> checkout modules... -> 输入modules名 ->确定。

  4、如何将新增的程序或文档纳入cvs管理?

  将新增的程序或文档copy到cvs本地工作目录 -> 右键 -> add selection 或 add selection binary(由文档类型决定) -> commit selection (建议文件修改后,在commit时加上本次修改的简短描述,便于以后在log中查看历史记录。)

  5、如何修改已存在程序或文档?

  右键 -> edit selection -> 修改完毕 -> commit selection

  6、如何放弃修改?

  只要还未commit,右键 -> unedit selection

  7、如何将新创建的module放入cvs服务器中?

  1)将包含欲放入库中的目录copy于工作目录下

  2)输入模块 create -> import module

  3)在弹出的文件对话框中选择你要输入的工程目录的顶级目录,并确使文件夹图标打开

  4)如果弹出筛选窗口,确保提交的文件被正确地设置了文本或二进制

  5)点击ok按钮,wincvs然后将整个目录结构输入到cvs服务器

  8、如何更新刚创建的modules

  1)在本地移走你的原始目录

  2)将cvs服务器上的modules取到本地工作目录(参见上面第3步)

  9、如何解决冲突?

  当二人或更多人修改了同一文件时就会发生冲突,此时可打开有问题的文件,搜索以<<<<<<<开始的行。冲突区有这样的标价:

  <<<<<<< 文件名

  你的修改

  ========

  从库中合并的代码

  >>>>>>> 修订版

  你要判断代码应该是什么,作必要的修改,删除cvs的标价,然后将你的修改提交到库中。

  建议:在修改cvs中的文件时,先update selection一下。

  10、如何取回以前的版本?

  graph selection -> 右键 -> tag selection 。

  11、如何在modules小窗口中看见cvs的本地工作目录?

  view -> browse location -> 在弹出的窗口中选择本地工作目录 -> 确定

  12、查看谁在修改文件

  右键 -> editors of selection。列出正在编辑files的用户。

  13、如何查看文件的历史修改记录?

  右键 -> log selection

  14、什么情况下需要锁定登出(checkout)?

  对于word文档、函数库等二进制文件,因无法由cvs合并,应当选中锁定登出。

  右键 -> lock selection

  unreserved checkouts是cvs确省方式,允许其他用户修改被登出的文件。

  cvs不会告知第一个登入者是否还有人在修改文件。

  其他人要登入会得到错误信息,他们须先与仓库中的最新版本合并才能等入。

  对于源代码等,应选择非锁定登出,否则将大大降低软件生产率。

  如果非锁定登出造成严重的开幕冲突,那时因为开发者的沟通严重不足。

  注意:

  单纯的非锁定登出对许多项目而言是可行的。

  锁定登出控制过于严格,不利于提高软件生产率。

  介于两者之间的非锁定登出与监视机制结合,对许多小组是最佳选择。

  四、cvs补遗

  1、如何删除一个目录?

  需要先删除目录中的所以文件,使该目录成为一个空目录,然后运行cvs update -p让cvs从仓库中清除空目录。

  2、如何重命名文件?

  将工作目录中的旧文件重命名为新文件。

-mv old new

  通知cvs删除旧文件

-cvs remove old

  通知cvs添加新文件

-cvs add new

  从cvs仓库中删除旧文件、添加新文件

-cvs ci -m "name old to new" old new

  3、cvs无法完成二进制文件的版本比较和版本合并,为此,应该避免版本分支。

  4、cvs无法更据文件内容识别二进制文件,但能够根据文件扩展名来识别那些文件是二进制文件,这是由cvswrappers配置文件定义的。

  5、设置只读用户

  向某些用户授权读取cvs仓库中的文件,但不允许他们修改文件。

  在&#36;cvsroot/cvsroot/readers文件中列用户名,例如:

xuys
huyj
zousj
anonymous

  五、开发要点总结

  1、要对cvs中的文件进行修改时,先update selection一下,然后进行编辑。

  2、对于源代码的修改,应选择非锁定登出。

  3、对于word文档等二进制文件,因无法由cvs合并,应当选择锁定登出。

  4、文件修改后,在commit时最好加上本次修改的简短描述,便于以后在log中查看历史记录

  5、小组成员之间要加强沟通。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons