资料介绍
CVS系统简介
2007-04-23 22:02:51
分享到:CVS系统简介
一、什么是CVS?
CVS
――Concurrent Versions System并行版本系统;
是一个标准的版本控制系统;
对代码进行集中管理;
记录代码所有的更改历史;
提供协作开发的功能;
支持多人同时CheckOut与合并。
以客户端/服务器模式工作,所有的用户都在客户端进行CVS操作,而所有命令的执行都在CVS服务器端进行。
二、CVS基本概念
CVS仓库:又称主拷贝,是CVS系统保存软件资源的地方。所有项目的所有文件的所有版本都保存在这个仓库中。
版本:开发人员每次向CVS提交所做的修改就形成了一个新版本。
工作拷贝:从CVS服务器端取出的,保存在我们正在使用的客户端计算机上的代码拷贝。每个人员都有一个属于自己的工作拷贝。
检出代码(创建工作拷贝check out):从服务器取出代码,就是创建工作拷贝的过程。
提交代码(commit):将代码送到服务器保存,commit又叫作check in。
导入代码(import):将未被CVS进行版本管理的代码引入CVS系统中,由CVS开始对它进行版本管理。
CVS日志:CVS用来记录每次操作的内容的信息。日志信息可以用cvs log命令来查看。
更新(update):在协同开发环境下,将其他人所作的最新修改从CVS仓库中取到你的工作拷贝中,从而使得你得工作拷贝与仓库中得最新版本保持一致。使用update是同步各个工作拷贝的手段。
冲突(conflict):在协同开发的环境下,当两个开发人员对同一个文件进行修改,并且依次提交CVS仓库时就发生了冲突。这种冲突需要开发人员手工消除,并提交到CVS仓库中形成解除冲突之后的新版本。
三、CVS命令:
1.
设置环境变量。
set CVSROOT=:pserver:xxx@192.168.0.226:e:/cvsroot
set CVSROOT=:pserver:xxx@ansi.3322.org:e:/cvsroot
2.签出工作版本到工作目录。
$cd
$cvs co account/src/common
该命令只将account/src/common目录结构签出到本地。若使用
$cvs co account
则将account下所有目录结构签出来。
3.
提交修改的文件到CVS版本库中:
$cvs ci 《filename》
注意若提交多个文件可以输入多个文件名,并以空格分开。若将该目录下所有文件都提交,那么只需
$cvs ci 《回车》
即可。
4.
提交新增加的目录或文件到CVS版本库中:
$cvs add 《dirname》
$cvs ci 《dirname》
$cvs add 《filename》
$cvs ci 《filename》
5.
删除目录及文件,需先删除目录下的文件
$rm 《filename》
$cvs remove 《filename》
$cvs ci 《filename》
再执行
$cd 。.
$cvs up –P
则将该空目录删除(只是删除本地工作拷贝的空目录)。
6.
查看文件状态
$cvs status 《filename》
例如:
$ cvs st ffun.c
=================================================================
File: ffun.c Status: Up-to-date
Working revision: 1.1 Wed Nov 6 11:29:04 2002
Repository revision: 1.1 /szunicom/dev/billing/src/preproc/CDMA/ffun.c,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
注意:最重要的是Status栏,可以有以下几种状态:
Up-to-date
:表明你的工作拷贝是最新的.
Locally Modified:表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新.
Needing Patch:表明有人已经修改过该文件并且已经提交了!你没有修改但你的工作拷贝的版本比仓库里的旧.
Needs Merge:表明你修改了该文件但没有提交,而有人也修改了这个文件,并且提交给仓库了。
Locally added
:表明使用了“add”命令增加了该文件,但还没有“commit”
Locally Removed
:表明你使用了“remove”命令,但还没有“commit”
Unkown
:CVS不知道关于这个文件的情况。例如,你创建了一个新文件,而没有使用“add”命令
解决办法:
若状态为Locally Modified,则需执行$cvs ci 《filename》
若状态为Needing Patch或Needing Merge,则需执行$cvs up 《filename》
将版本库里的文件与工作拷贝合并后,再提交给版本库,使用命令:
$cvs ci 《filename》
。
若状态为:Locallyadded,则需执行$cvs ci 《filename》
若状态为:Removed,则需执行$cvs ci 《filename》
若状态为:Unkown,则需执行$cvs add 《filename》,$cvs ci 《filename》。
7.
查看工作拷贝和仓库中最后版本之间的修改
$ cvs diff src.c
8.
查看指定的两个版本之间的修改
$ cvs diff -r 1.1 -r 1.2 《filename》
9.
版本回退(取出以前的某个版本)
有两种方式:
一是只把某一版本的文件输出到标准输出上:
$cvs up –p –r 《版本号》 《filename》
“-p”选项让CVS命令的结果只输出到标准输出,而不写入到结果文件中。
另一种是将输出到标准输出的结果重定向到文件中:
$cvs up –p –r 《版本号》 《filename》 》 《filename》
如:目前abc.c文件的版本号为1.5,要取出1.2的版本,那么执行
$cvs up –p –r 1.2 abc.c 》 abc.c
若没有使用“-p”选项进行回退,而是使用了$cvs up –r 1.2 abc.c命令,之后若对1.2版本进行修改后再提交到CVS时,会出现如下提示信息:
cvs ci
cvs commit: Examining 。
cvs commit: sticky tag `1.2‘ for file `abc.c’ is not a branch
cvs [commit aborted]: correct above errors first!
解决办法两种方式:
1
、修改CVS/Entries文件,将以下黄色标记部分删除即可。
$cd CVS
$ vi E*
/abc.c/1.2/Tue Dec 17 13:33:06 2002//T1.2
D
~
~
2、使用$cvs up –A abc.c命令来消除附着标签,但是该命令是将1.2版本与最新版本进行了合并,还需对abc.c进行修改再重新提交。
10.
如何恢复已经删除的文件或目录:
1. 在执行了【Remove】命令之后恢复文件。 ◇ 【Ctrl+L】直接输入命令cvs add xxxxx,或执行【Add Selection】界面操作。 ◇ 这样就可以直接恢复还未提交的删除文件。
2. 在执行了【Commit】命令之后恢复文件。 ◇ 只能用【Ctrl+L】直接输入命令cvs add xxxxx,这时会得到一个空的文件。 ◇ 选中这个空文件,执行【Update】操作,得到这个文件的实体。 ◇ 再次选中这个文件,执行【Commit】操作,得到这个文件最新版本。
3. 由于CVS系统中本质上不会删除任何目录,因此,谈不上对目录的恢复,但是CVS系统默认情况下是要在用户本机上(如:YCW2000)要删除空目录,因此,可以用如下方法得到已被删除的空目录:cvs checkout -p xxx,也可以在Admin=》Preference的【Globals】页面进行设置。
2007-04-23 22:02:51
分享到:CVS系统简介
一、什么是CVS?
CVS
――Concurrent Versions System并行版本系统;
是一个标准的版本控制系统;
对代码进行集中管理;
记录代码所有的更改历史;
提供协作开发的功能;
支持多人同时CheckOut与合并。
以客户端/服务器模式工作,所有的用户都在客户端进行CVS操作,而所有命令的执行都在CVS服务器端进行。
二、CVS基本概念
CVS仓库:又称主拷贝,是CVS系统保存软件资源的地方。所有项目的所有文件的所有版本都保存在这个仓库中。
版本:开发人员每次向CVS提交所做的修改就形成了一个新版本。
工作拷贝:从CVS服务器端取出的,保存在我们正在使用的客户端计算机上的代码拷贝。每个人员都有一个属于自己的工作拷贝。
检出代码(创建工作拷贝check out):从服务器取出代码,就是创建工作拷贝的过程。
提交代码(commit):将代码送到服务器保存,commit又叫作check in。
导入代码(import):将未被CVS进行版本管理的代码引入CVS系统中,由CVS开始对它进行版本管理。
CVS日志:CVS用来记录每次操作的内容的信息。日志信息可以用cvs log命令来查看。
更新(update):在协同开发环境下,将其他人所作的最新修改从CVS仓库中取到你的工作拷贝中,从而使得你得工作拷贝与仓库中得最新版本保持一致。使用update是同步各个工作拷贝的手段。
冲突(conflict):在协同开发的环境下,当两个开发人员对同一个文件进行修改,并且依次提交CVS仓库时就发生了冲突。这种冲突需要开发人员手工消除,并提交到CVS仓库中形成解除冲突之后的新版本。
三、CVS命令:
1.
设置环境变量。
set CVSROOT=:pserver:xxx@192.168.0.226:e:/cvsroot
set CVSROOT=:pserver:xxx@ansi.3322.org:e:/cvsroot
2.签出工作版本到工作目录。
$cd
$cvs co account/src/common
该命令只将account/src/common目录结构签出到本地。若使用
$cvs co account
则将account下所有目录结构签出来。
3.
提交修改的文件到CVS版本库中:
$cvs ci 《filename》
注意若提交多个文件可以输入多个文件名,并以空格分开。若将该目录下所有文件都提交,那么只需
$cvs ci 《回车》
即可。
4.
提交新增加的目录或文件到CVS版本库中:
$cvs add 《dirname》
$cvs ci 《dirname》
$cvs add 《filename》
$cvs ci 《filename》
5.
删除目录及文件,需先删除目录下的文件
$rm 《filename》
$cvs remove 《filename》
$cvs ci 《filename》
再执行
$cd 。.
$cvs up –P
则将该空目录删除(只是删除本地工作拷贝的空目录)。
6.
查看文件状态
$cvs status 《filename》
例如:
$ cvs st ffun.c
=================================================================
File: ffun.c Status: Up-to-date
Working revision: 1.1 Wed Nov 6 11:29:04 2002
Repository revision: 1.1 /szunicom/dev/billing/src/preproc/CDMA/ffun.c,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
注意:最重要的是Status栏,可以有以下几种状态:
Up-to-date
:表明你的工作拷贝是最新的.
Locally Modified:表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新.
Needing Patch:表明有人已经修改过该文件并且已经提交了!你没有修改但你的工作拷贝的版本比仓库里的旧.
Needs Merge:表明你修改了该文件但没有提交,而有人也修改了这个文件,并且提交给仓库了。
Locally added
:表明使用了“add”命令增加了该文件,但还没有“commit”
Locally Removed
:表明你使用了“remove”命令,但还没有“commit”
Unkown
:CVS不知道关于这个文件的情况。例如,你创建了一个新文件,而没有使用“add”命令
解决办法:
若状态为Locally Modified,则需执行$cvs ci 《filename》
若状态为Needing Patch或Needing Merge,则需执行$cvs up 《filename》
将版本库里的文件与工作拷贝合并后,再提交给版本库,使用命令:
$cvs ci 《filename》
。
若状态为:Locallyadded,则需执行$cvs ci 《filename》
若状态为:Removed,则需执行$cvs ci 《filename》
若状态为:Unkown,则需执行$cvs add 《filename》,$cvs ci 《filename》。
7.
查看工作拷贝和仓库中最后版本之间的修改
$ cvs diff src.c
8.
查看指定的两个版本之间的修改
$ cvs diff -r 1.1 -r 1.2 《filename》
9.
版本回退(取出以前的某个版本)
有两种方式:
一是只把某一版本的文件输出到标准输出上:
$cvs up –p –r 《版本号》 《filename》
“-p”选项让CVS命令的结果只输出到标准输出,而不写入到结果文件中。
另一种是将输出到标准输出的结果重定向到文件中:
$cvs up –p –r 《版本号》 《filename》 》 《filename》
如:目前abc.c文件的版本号为1.5,要取出1.2的版本,那么执行
$cvs up –p –r 1.2 abc.c 》 abc.c
若没有使用“-p”选项进行回退,而是使用了$cvs up –r 1.2 abc.c命令,之后若对1.2版本进行修改后再提交到CVS时,会出现如下提示信息:
cvs ci
cvs commit: Examining 。
cvs commit: sticky tag `1.2‘ for file `abc.c’ is not a branch
cvs [commit aborted]: correct above errors first!
解决办法两种方式:
1
、修改CVS/Entries文件,将以下黄色标记部分删除即可。
$cd CVS
$ vi E*
/abc.c/1.2/Tue Dec 17 13:33:06 2002//T1.2
D
~
~
2、使用$cvs up –A abc.c命令来消除附着标签,但是该命令是将1.2版本与最新版本进行了合并,还需对abc.c进行修改再重新提交。
10.
如何恢复已经删除的文件或目录:
1. 在执行了【Remove】命令之后恢复文件。 ◇ 【Ctrl+L】直接输入命令cvs add xxxxx,或执行【Add Selection】界面操作。 ◇ 这样就可以直接恢复还未提交的删除文件。
2. 在执行了【Commit】命令之后恢复文件。 ◇ 只能用【Ctrl+L】直接输入命令cvs add xxxxx,这时会得到一个空的文件。 ◇ 选中这个空文件,执行【Update】操作,得到这个文件的实体。 ◇ 再次选中这个文件,执行【Commit】操作,得到这个文件最新版本。
3. 由于CVS系统中本质上不会删除任何目录,因此,谈不上对目录的恢复,但是CVS系统默认情况下是要在用户本机上(如:YCW2000)要删除空目录,因此,可以用如下方法得到已被删除的空目录:cvs checkout -p xxx,也可以在Admin=》Preference的【Globals】页面进行设置。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- CVS塑壳断路器产品目录 4次下载
- 机械、液压传动系统简介 0次下载
- 覆铜基板工艺流程简介 0次下载
- 第4章:程序编写和调试环境简介PPT下载 13次下载
- 面向工程师和科学家的MATLAB简介电子版 0次下载
- 送风调节系统简介资料下载
- labview通信原理实验系统简介 38次下载
- CVS_V1.12.13软件免费下载 211次下载
- 在linux下安装CVS 0次下载
- Android操作的系统简介 13次下载
- 倒车影像系统简介 16次下载
- CVS和Nightly Build技术笔记 0次下载
- 基于CVS的OPNET模型配置管理研究 0次下载
- CVS和Nightly Build技术 0次下载
- CAN数据总线系统简介
- 产品简介 | RZ/A系列MPU 239次阅读
- CAN和CANFD协议简介(下) 317次阅读
- CAN和CANFD协议简介(上) 482次阅读
- Kafka 的简介 507次阅读
- DLL简介 1263次阅读
- 低噪声放大器简介 1859次阅读
- AC/DC开关电源简介 3382次阅读
- 51单片机指令系统的详细资料简介 5168次阅读
- digilentZynq-7000 ARM开发系统简介 1579次阅读
- MATLAB基础知识MATLAB的简介,编程环境和基本操作的详细概述 7377次阅读
- 智能配电系统简介 4095次阅读
- DCS系统的打印系统及工作原理简介 1819次阅读
- 液压制动的终结-电子制动(EMB)技术发展简介 9122次阅读
- 量子芯技术简介 1208次阅读
- Wi-Fi 技术简介,IEEE802.11b技术简介 904次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多