基本术语

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. Python实现LR(逻辑回归)

    Python实现LR(逻辑回归) 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必) 计算过程 st=>start: 开始 e=>end o ...

  2. Android facebook-android-sdk-3.5.2 FQL

    android平台下使用Facebook 3.5.2的SDK实践 步骤总结: 1.引用SDK 在Facebook官网下载最新版的SDK,解压. 打开Eclipse, 'File' -> 'Imp ...

  3. WPF——数据绑定(二)绑定方法—绑定本地对象

    注意:本人初学WPF,文中表达或技术性问题请勿见怪,欢迎指正,谢谢 标记拓展语法:绑定到本地对象 什么是绑定到本地对象,我个人理解就是实现UI层上两个或多个控件的相互关联,一个控件的状态改变,导致另一 ...

  4. mongodb修改器

    mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...

  5. 转载:centos上yum安装apache+php+mysql等

    1. 更新系统内核到最新. [root@linuxfei ~]#yum -y update 系统更新后,如果yum安装时提示错误信息,请执行以下命令修复. [root@linuxfei ~]#rpm ...

  6. Shell常用操作

    1.读取配置文件中的jdbc_url参数的值($InputParamFile为待读取的目标文件绝对路径) jdbc_url=`grep "jdbc_url" $InputParam ...

  7. JavaScript继承学习笔记

    JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承.(jav ...

  8. sql语句not in判断条件注意事项

    sql语句not in判断条件注意事项 问题描述:mysql数据库,存在两个表org表和kdorg表,用于存储组织信息.现在我需要从org表找出组织,条件为该组织不在kdorg表里. sql语句:se ...

  9. android 自动化压力测试-monkey 1 实践

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  10. weiapi2.2 HelpPage自动生成接口说明文档和接口测试功能

    在开发Webapi项目时每写完一个方法时,是不是需要添加相应的功能说明和测试案例呢?为了更简单方便的写说明接口文档和接口测试HelpPage提供了一个方便的途径. 她的大致原理是:在编译时会生成.dl ...