搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

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

天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区 QQ专区 QQ挂机 了解Web2.0
Flash MX 视频教程 Photoshop视频教程 网页设计视频教程 照片处理数字暗房
PPT动画演示教程 Excel动画教程集 Word动画演示教程 Windows Vista专区
特洛伊木马专区 黑客知识教程专区 防火墙应用专区 注册表应用专区
Windows API开发专区 网络编程专区 VB数据库编程专区 图像处理与多媒体编程

  一、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仓库中的文件,但不允许他们修改文件。

  在$CVSROOT/CVSROOT/readers文件中列用户名,例如:

xuys
huyj
zousj
anonymous

  五、开发要点总结

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

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

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

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

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


下一篇:>>>详细内容 >>
相关文章:
© 2006   www.java-asp.net