基本术语

Repository 仓库 [rɪ'pɒzətrɪ]

Module 模块 ['mɒdju:l]

Import 导入

Checkout 导出

Commit 提交修改 [kə'mɪt]

Update 同步

Revision 文件版本 [rɪ'vɪʒn]

Release  发行版本 [rɪ'li:s]

Tag  标签 [tæɡ]

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

Module:即木桶里面放的是一个项目的所有文件(包括源代码,文档文件,资源文件等)。在物理上,Module是CVS服务器根目录下的第一级子目录。

Import:将本地的软件项目整个目录结构都Import到CVS的仓库中去。经过这种导入,CVS将为该项目创建一个新的"木桶"—Module。

Checkout:将仓库中的一个Module中的东西导出到本地的工作目录下,然后进行工作,修改其中的内容。

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

Update:与Commit对应,是从仓库中的Module中下载同事们修改过的文件,如果这个文件在本地也有,就会更新本地的拷贝,如果本地没有,就会把新文件下载到本地。

Revision:指的是单个文件的版本,而不是整个项目的版本。基本上,单个文件每次的修改,经过Commit之后,它的Revision都要改变一次,比如从1.1到1.2到1.3等等。特别要注意,单个文件的版本(Revision)与整个工程产品的版本(Version或Release)可以没有任何关系。

Release:整个产品的版本,例如VC5.0,VC6.0等。

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

 

在MyEclipse中连接CVS库

每一个开发成员都需要用自己的MyEclipse去连接CVS库,值得一提的是,就算CVS服务器是本机,开发人员也需要用这种网络方式去访问CVS库。

打开MyEclipse,window-Open Perspective –Others,打开CVS Repository Expolring透视图。

在CVS Repositories 面板的空白区,右键弹出菜单,New-Repository Location…,打开窗口。

在窗口中做如下设置:

Host:连接CVS服务器的IP地址或者机器名。

Repository path:CVS具体库名。

User:连接CVS服务器的用户名。

Password:连接密码。

 

将CVS库中的项目导入Eclipse工作区间

在MyEclipse中,File-Import,打开导入窗口,选择"CVS”下的"Projects from CVS”。

选择创建好的CVS服务器连接。

选择要导入的项目,Finish结束。

 

开发中的"Update”和"Commit”

update的功能是把CVS库中的文件或者目录中最近的版本下载下来覆盖本地文件或目录。在文件或目录上右键Team-update,得到最新的文件覆盖本地文件。

commit的功能是把修改后的本地文件或者目录上传到CVS库中覆盖原来的版本。在文件或目录上右键 Team-commit,打开提交窗口,输入一些注释然后Finish。

每次修改文件之前先Update一下,保证现在的文件是最新版本,修改后Commit提交。

如果新建文件或者是新目录(或者包),也要在文件或目录上右键Team-commit。注意目录中的内容不能为空,有内容之后再进行commit。

在整个项目上右键 Team-update或者commit表示把整个项目进行下载或者上传。

如果开发人员甲update之后进行文件修改,然后commit,如果另外一个开发人员乙操作的是同一个文件,这时候可能会出现冲突,出现无法提交的情况,这是正常情况。

这时候可以先update一下,得到更新的文件,然后经过和其他开发人员的沟通再修改文件再commit。

在每次访问CVS时,都应该先进行Update操作,然后再修改本地文件,最后再做Commit操作。

查看历史版本

文件中右键Team-show history,可以查看历史版本,从而得知当前的文件是不是最新版本,需不需要update一下。并且通过历史功能可以查看以前版本的源代码,这样在误操作的时候可以找回代码。

移除CVS配置

如果项目想脱离CVS管理,例如移除所有目录及子目录中的CVS文件夹,可以在项目中右键Team-Disconnect

CVS的使用的更多相关文章

  1. 版本控制工具比较-CVS,SVN,GIT

    首先介绍几个版本控制软件相互比较的重要依据: a.版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户通 ...

  2. 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】

    一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...

  3. cvs update后输出的文件标志 和 update常用的几个参数

    (1)update 和 checkout 在执行中,会为每个文件打印一行提示信息,文件的状态通过前面的单个字符指明:       U file        文件按要求从仓库得到更新.用在那些仓库里面 ...

  4. BAT 快速删除CVS文件和拷贝最近修改文件的目录结构

    相信大家在操作大量文件的的时候,经常会遇到一些手动很难操作的情况 比如有CVS版本控制下每个文件夹下都有一个CVS文件夹,一个个手工删除肯定很费劲,我们都是懒人,还是用工具解决吧.不用重新写程序,直接 ...

  5. SVN和CVS的区别

    对版本控制就有了一定的理解,同时也应该知道SVN与CVS是比较流行的两款SCM工具.那么到底这两款工具有什么区别呢? 1.版本编号方面 例如,我们的版本库为A,其中有文件a,b,c. 在SVN中,新版 ...

  6. OpenBSD为何还在用CVS之感

    一个轻松无聊的晚上突然想到一个问题——在当今这个Git大红大紫的时代,OpenBSD为何还在用CVS代码仓库?连他同阵营的FreeBSD都已经改用SVN,宣布逐渐废掉CVS了……问了下google,搜 ...

  7. 将 Book-Crossing Dataset 书籍推荐算法中 CVS 格式测试数据集导入到MySQL数据库

    本文内容 最近看<写给程序员的数据挖掘指南>,研究推荐算法,书中的测试数据集是 Book-Crossing Dataset 提供的亚马逊用户对书籍评分的真实数据.推荐大家看本书,写得不错, ...

  8. 【转】cvs2svn 把CVS档案库转换为SVN档案库

    转载地址:http://jackdown.blog.sohu.com/66646130.html 在linux下的操作 1).安装 下载:Python 2.0   地址:http://www.pyth ...

  9. 【转】Windows下搭建cvs服务器

    转载地址:http://hi.baidu.com/iloverobot/item/fad1eb6d66c45e166995e66d 下载cvs server:CVSNT 网址为:http://www. ...

  10. cvs版本控制器

    CVS 版本控制器   首先我们要来明确 :为什么要学习CVS •项目开发靠的是一个团队的能力,很少有大中型项目是由个人完成的.对于团队开发来讲---能控制每个人的分工和权限, 可以让多个人同时编辑同 ...

随机推荐

  1. SVN基于一个branch创建新branch

    在本地现有Branch(Checkout出来的目录)上,右键SVN,选择Branch/Tags,选择目录.比如https://sadcsc01.pmmr.com/web/Jaguar/branches ...

  2. 电梯调度--c++--软件工程

    一.设计思路 (1)将乘客要去的楼层数存起来. (2)假设yi为乘客要爬楼层数之和,yi=n1*|(n1-ni)|+n2*|(n2-ni)|+..+n18*|(n18-ni)| (3)比较y1到y18 ...

  3. Html5 常见的新增API详解

    1. getElementsByClassName()方法 getElementsByClassName()方法接收一个参数,即一个包含一或多个类名的字符串,返回带有指定类的所有元素的NodeList ...

  4. 网络---中断套接字Socket

    package socketpack_2; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.even ...

  5. Netsharp产品标识自定义设置:产品名称、版权、LOGO等

    阅读本文请先阅读Netsharp下载及环境搭建 Netsharp本身是一个业务基础平台,Netsharp本身基础上开发的业务产品对客户才有价值,客户看到的产品应该不是Netsharp而是具体的业务产品 ...

  6. windows下配置nodejs+npm

    windows下安装nodejs是比较方便的 (v0.6.0之后,支持windows native),进入官网http://nodejs.org/  点击install即可安装.下载完成后一路next ...

  7. DepthClipEnable error

    刚刚呢又遇到这种鬼扯的问题,ps就return个(1,1,0,1) nisight的汇编都写对了,但结果就是画不出任何东西,按照经验,必然是某个state.... 我就找啊找啊,被我找到一个 Rast ...

  8. 腾讯开源的轻量级CSS3动画库:JX.Animate

          JX.Animate 是由腾讯前端团队 AlloyTeam 推出的一个 CSS3 动画库,通过 JX(腾讯的前端框架)插件的形式提供. Why CSS3 众所周知在支持HTML5的浏览器中 ...

  9. mybatis insert 如何返回主键

    在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作.       使用ibatis的sel ...

  10. Nginx搭建flv视频点播服务器

    Nginx搭建flv视频点播服务器 前一段时间使用Nginx搭建的多媒体服务器只能在缓冲过的时间区域内拖放, 而不能拖放到未缓冲的地方. 这就带来了一个问题: 如果视频限速的速率很小, 那么客户端观看 ...