CVS的使用
基本术语
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的使用的更多相关文章
- 版本控制工具比较-CVS,SVN,GIT
首先介绍几个版本控制软件相互比较的重要依据: a.版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户通 ...
- 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】
一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...
- cvs update后输出的文件标志 和 update常用的几个参数
(1)update 和 checkout 在执行中,会为每个文件打印一行提示信息,文件的状态通过前面的单个字符指明: U file 文件按要求从仓库得到更新.用在那些仓库里面 ...
- BAT 快速删除CVS文件和拷贝最近修改文件的目录结构
相信大家在操作大量文件的的时候,经常会遇到一些手动很难操作的情况 比如有CVS版本控制下每个文件夹下都有一个CVS文件夹,一个个手工删除肯定很费劲,我们都是懒人,还是用工具解决吧.不用重新写程序,直接 ...
- SVN和CVS的区别
对版本控制就有了一定的理解,同时也应该知道SVN与CVS是比较流行的两款SCM工具.那么到底这两款工具有什么区别呢? 1.版本编号方面 例如,我们的版本库为A,其中有文件a,b,c. 在SVN中,新版 ...
- OpenBSD为何还在用CVS之感
一个轻松无聊的晚上突然想到一个问题——在当今这个Git大红大紫的时代,OpenBSD为何还在用CVS代码仓库?连他同阵营的FreeBSD都已经改用SVN,宣布逐渐废掉CVS了……问了下google,搜 ...
- 将 Book-Crossing Dataset 书籍推荐算法中 CVS 格式测试数据集导入到MySQL数据库
本文内容 最近看<写给程序员的数据挖掘指南>,研究推荐算法,书中的测试数据集是 Book-Crossing Dataset 提供的亚马逊用户对书籍评分的真实数据.推荐大家看本书,写得不错, ...
- 【转】cvs2svn 把CVS档案库转换为SVN档案库
转载地址:http://jackdown.blog.sohu.com/66646130.html 在linux下的操作 1).安装 下载:Python 2.0 地址:http://www.pyth ...
- 【转】Windows下搭建cvs服务器
转载地址:http://hi.baidu.com/iloverobot/item/fad1eb6d66c45e166995e66d 下载cvs server:CVSNT 网址为:http://www. ...
- cvs版本控制器
CVS 版本控制器 首先我们要来明确 :为什么要学习CVS •项目开发靠的是一个团队的能力,很少有大中型项目是由个人完成的.对于团队开发来讲---能控制每个人的分工和权限, 可以让多个人同时编辑同 ...
随机推荐
- [转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)
[转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1) http://yanue.net/post-123.html ...
- Qt入门1---widget、mainwindow和Dialog区别
摘要: 看了一个月的Qt,居然没有理清Qt中 ------------------------------------ 1.QMainWindow A main window provides a f ...
- VBS基础篇 - 常用函数
Option Explicit '*********************************Date/Time函数******************************* 'CDate函 ...
- 使用getElementById获取xml中的指定元素
Document有一个getElementById的方法,在文档中的解释是: 返回具有带给定值的 ID 属性的 Element.如果不存在此类元素,则此方法返回 null.如果多个元素具有带该 ...
- Teamwork-Week2真对必应词典和有道词典的软件分析和用户需求调查(桌面版)
经调查,现在有道词典在该领域拥有很大程度的市场占有率,所以我们将有道词典与必应词典进行对比. 核心功能一:单词本 有道词典中的单词本都只能是由用户手动添加不会的单词,而必应词典中的单词 不仅可以被自己 ...
- snmp安装配置
只说一下在ubuntu下如何进行基本的配置. ubuntu Server 12.04 apt-get install snmp snmpd 安装完成之后还要安装snmp-mibs-downloader ...
- 遗传学详解及Matlab算法实现
遗传学算法概述 从之前转载的博客<非常好的理解遗传算法的例子>中可以知道,遗传学算法主要有6个步骤: 1. 个体编码 2. 初始群体 3. 适应度计算 4. 选择运算 5. 交叉运算 6. ...
- C语言遇到的错误和解决方案~~~持续更新,记录成长的过程
1.error C2296: '&' : illegal, left operand has type 'char [3]' scanf("%d" &x); 少了一 ...
- 我是IT小小鸟,老师我之前上传了!!!!老是请您看到我
我是IT小小鸟读后感 世界上没有一蹴而就的成功者,只有头悬梁锥刺股的奋斗者.蜉蝣向往大鹏的辉煌,却不曾知大鹏以往的汗水.蜉蝣之所以为蜉蝣,是因为它犹如井底之蛙,目光短浅,之盲目地羡慕成功者,而大鹏之所 ...
- 【转载】Android异步处理系列文章
本博文地址:http://blog.csdn.net/mylzc/article/details/6777767 转载请注明出处. 为了给用户带来良好的交互体验,在Android应用的开发过程中需要把 ...