CVS 客户端使用手册

IRLab

2003210

什么是CVS

      CVSVersion Control System.)即版本控制系统。用来记录源文件的历史信息。甚至二进制文件,媒体文件等。

例如,当软件修改时有时会产生Bugs,并且你可能在做这次修改后很长时间不会发现这些Bugs。使用CVS,你可以容易地回顾老的代码版本去发现哪一次的修改导致这些问题。有时候这样会非常有帮助。

你可能会保留你每一次的代码版本,这可能会浪费你很多的代码空间。CVS使用种聪明的办法保存你的多个版本在一个文件中。它仅仅保留版本间的不同内容。

       它可以协助一组人共同开发一个工程。如果你是一个项目中的一组成员之一,CVS也能够帮助你。除非你特别仔细,你很容易覆盖其他人的工作。一些编辑器,例如GNUEmacs,试图去判定一个文件是否被两人同时修改。不幸的是,如果一个人使用其它的编辑器时,这个安全方式将不再有效。CVS使用让不同开发者独立工作的方式解决了这个问题。每一个开发者的工作都在他自己的目录内,并且CVS 在每个开发者的工作完成后进行合并工作。

基本概念

仓库(Repository

       CVS的仓库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check incommit)回仓库。而仓库通常为与工作目录分离的。CVS通过多种方式访问仓库。每种方法有不同目录表示形式。

       数据如何存放在repository中:随着CVS版本的不同,存放结构会发生变化,一般情况下用户无需了解数据到底是如何存放的。

Revision

每一个file的各个revision都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。

Tag

用符号化的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag默认将不会覆盖原来的;

Branch

当用户修改一个branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...

Conflct

完全是纯文本的冲突,不包含逻辑上的矛盾,比如CVS不能解决如下问题:某人修改了函数f的参数,而另外一个人在另外一个地方用老的参数调用该函数。文本冲突需要用户自己参与解决,CVS无法自动解决。

安装CVS客户端

1Windows客户端的安装

在此,我们介绍WinCVS(一款相当不错的基于WindowsCVS客户端软件)的安装。请在""fileserver"software"programming"CVS目录下下载WinCVS软件并安装之。其安装过程与普通的Windows软件相同,其运行界面如下:

2.客户端配置

       客户端配置最重要的是CVSROOT环境变量的配置。其格式是:

       :pserver:username@hostname(或者IP地址):CVS仓库路径

       例如,我在使用我们实验室的CVS服务器时的配置为:

       :pserver:car@192.168.2.2:/had/src

       每一个实验室的成员应该是用自己的mail服务器账户作为usernam,密码也是mail服务器的密码。

       配置对话框如下:

3.测试远程访问CVS服务器

       WinCVS窗口中选择Admin->Login命令,会出现提示输入密码的窗口。输入密码后,单机OK按钮。然后察看命令结果输出窗口中的输出结果。如果显示错误信息,则表明安装配置有误,请察看前面的步骤。如果仍然有错误,请与管理员联系。

4.在Visual Studio中集成CVS

       CVS取代Visual Studio中所使用的Microsoft Visual Source Safe,步骤如下:

(1)    安装Microsoft Visual Studio

(2)    安装WinCVS

(3)    ""fileserver"software"programming"CVS下载iglooinstall.zip并安装igloo

(4)    WinCVS安装目录下的cvs2ntlib.dllcvs2ntslib.dll文件拷贝到igloo的安装目录下。

完成以上步骤以后,打开Microsoft Visual Studio就可以看到进行版本管理需要的菜单了,如下图所示:

经常使用的CVS功能

       使用iglooVisual Studio中使用CVS进行版本的控制和管理是一件十分轻松惬意的事情。其为用户提供了大多数的基本的CVS 命令的图形接口,使我们只是简单的点击鼠标,就可以完成一般的CVS控制命令,下面将逐一介绍:

Check Out

       把源文件从RCS源代码仓库中取出,缺省的版本是最新的版本,如果你需要一个指定的版本,则需要使用-r选项指定。

       在每次更改源代码之前,需要Check Out最新的版本,再起基础之上对源代码进行修改。将代码目录checkout到指定目录下,所有文件都是read-write

Check In

       把源代码加入到RCS源代码仓库中,每一个添加进代码库中的文件的版本是 1.1。以后每次修改文件重新ci以后,此文件的版本递增为1.2 1.3.……。

       在每次对源代码修改之后,需要Check In,提交最新版本的源代码。

冲突:多人同时修改同一内容。冲突的情况下,通过文件两个版本的比较消除冲突的地方后再次提交。比较两个版本不同的方法是:

1)可以利用CVS自带的比较工具,CVS会把不同部分通过

<<<<<<<<<<<

...

==========

...

>>>>>>>>>>>

列出来;

2)也可以利用其它文本比较工具比较(Preference setting中选定,Query-diff setting中选定);

Add to Source Control

       将新的文件加入到版本控制之中。

References

1.杨锦方等. CVSNightly Build技术. 清华大学出版社

2.使用CVS进行版本管理

3.WINDOW系统下CVS的使用

4.Karl Fogel. Open Source Development With CVS

5.Per Cederqvist et al. Version Management With CVS

转载于:https://www.cnblogs.com/starspace/archive/2009/01/09/1372855.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redisserver是什么问题_面试官老是问:为什么采用单线程的Redis也会如此之快?...

Java面试笔试面经、Java技术每天学习一点公众号Java面试关注我不迷路作者&#xff1a;kaito来源&#xff1a;http://kaito-kidd.com/2020/06/28/why-redis-so-fast/众所周知&#xff0c;Redis在内存库数据库领域非常地火热&#xff0c;它极高的性能和丰富的数据结构为我们的开发…

Java加密与解密的艺术~数字签名~ECDSA实现

ECDSA 实现 /*** 2009-10-10*/ package org.zlex.chapter09_3;import java.math.BigInteger; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import …

Science:语言可能并不是推理能力所必需的

来源&#xff1a;神经科技丨公众号在一项新的针对婴儿的研究中&#xff0c;来自西班牙、匈牙利和波兰的研究人员发现语言可能并不是推理能力&#xff08;reasoning ability&#xff09;所必需的。在发表在2018年3月16日的Science期刊上的一篇标题为“Precursors of logical rea…

嗅探工具 --- wireshark、tcpdump、dsniff、ettercap、bettercap、netsniff-ng、cain

最好的 MitM 中间人攻击开源框架清单&#xff1a;https://github.com/Chan9390/Awesome-MitM 哔哩哔哩&#xff1a;https://search.bilibili.com/all?keywordwireshark 1、WireShark WireShark 是一个开源免费的高性能网络协议分析软件&#xff0c;它的前身就是非常著名的网络…

JavaScript抽象类及Class.create备忘

我们知道抽象在面向对象中的重要地位。而JavaScript虽不是一门户严格意义上的面向对象语言&#xff0c;但&#xff0c;它也可以有自己的面向对象实现。当然包括抽象。在JavaScript中,虚方法可以看作该类中没有定义的方法,但已经通过this指针使用了.通过下面的示例可以看出&…

人工脑连接体:类脑人工智能的奇点时刻来临

来源&#xff1a;华春雷科学网博客最近&#xff0c;Mindputer实验室制造出世界首个“人工脑连接体”&#xff08;True-Brain&#xff09;的信息刚刚发布&#xff08;详见《会议通报&#xff1a;中国Mindputer实验室首次造出人工脑连接体》。做为一个高前沿性的专业技术概念&…

电脑、手机 自动化 键鼠操作( 类似按键精灵 )

有没有和按键精灵类似的脚本软件 &#xff1f;&#xff1f;&#xff1a;https://www.zhihu.com/question/342937346 AutomateIt、Automate、按键精灵、AutoJS…等Android自动化工具有什么特点&#xff1f;&#xff1a;https://www.zhihu.com/question/59503646 按键精灵系列软…

Java加密与解密的艺术~数字证书详解

数字证书具备常规加密/解密必要的信息&#xff0c;包含签名算法&#xff0c;可用于网络数据加密/解密交互&#xff0c;标识网络用户&#xff08;计算机&#xff09;身份。数字证书为发布公钥提供了一种简便的途径&#xff0c;其数字证书则成为加密算法以及公钥的载体。依靠数字…

学界 | DeepMind论文解读:通过删除神经元来了解深度学习

作者&#xff1a;杨文深度神经网络由许多单独的神经元组成&#xff0c;它们以复杂且违反人直觉的方式组合起来&#xff0c;以解决各种具有挑战性的任务。这种复杂性一方面赋予神经网络神秘力量&#xff0c;另一方面&#xff0c;也让它们变成了人类难懂的黑匣子。了解神经网络的…

python动态验证码_Python 模拟生成动态产生验证码图片的方法

模拟动态产生验证码图片模拟生成验证码&#xff0c;首先要做的是生成随机的字母&#xff0c;然后对字母进行模糊处理。这里介绍一下 Python 提供的 Pillow 模块。PillowPIL&#xff1a;Python Image Library&#xff0c;Python 的图像处理标准库&#xff0c;功能强大。PIL 是第…

图解 CSS (1): 先做一个样式表测试工具

一直没有把样式表系统一下, 春节假期有空, 不能再等了.为了方便学习, 先写了一个样式表测试工具: CssTest(点击下载)工具非常简单, 写了 10 行左右的代码; 运行效果图:代码文件:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, …

Java加密与解密的艺术~数字证书~模型分析

1、证书签发 数字证书需要经由认证机构签发&#xff0c;其流程如图&#xff1a; 数字证书的颁发流程可简述为如下过程&#xff1a; 1&#xff09;、由数字证书需求方产生自己的密钥对。 2&#xff09;、由数字证书需求方将算法、公钥和证书申请者身份信息传送给认证机构。…

公告!2018年度国家科技奖提名公示,信息科学组获47项提名

作者&#xff1a;杨文3 月 23 日&#xff0c;国家科学技术奖励工作办公室发布第 89 号公告&#xff1a;2018 年度国家科学技术奖提名工作已结束&#xff0c;共收到有关单位和专家提名的国家自然科学奖项目 272 项&#xff0c;技术发明奖项目 306 项 (通用项目 247 项&#xff0…

Python 虚拟环境

参考&#xff1a;http://www.cnblogs.com/wilber2013/p/4774022.html virtualenv documentation: https://virtualenv.pypa.io/en/latest/ virtualenvwrapper documentation: http://virtualenvwrapper.readthedocs.org/en/latest/http://docs.python-guide.org/en/latest/dev/…

VR变革已来!华为完成业界首个5G实验网下Cloud VR业务验证

来源&#xff1a;智吧网近日&#xff0c;华为、北京传送科技有限公司&#xff08;TPCAST&#xff09;联合完成业界首个5G实验网下Cloud VR业务验证&#xff0c;实现了交互式CG&#xff08;Computer Graphics&#xff09;VR内容的实时云端渲染。何以见得这足以被历史铭记&#x…

预测|十张图带你了解2018年机器人行业趋势与前景

来源&#xff1a;前瞻产业研究院3月15日&#xff0c;腾讯对外公布了其2018年在AI领域的三大核心战略&#xff0c;其中包括成立机器人实验室“Robotics X”。当然&#xff0c;腾讯并不是唯一一家展开行动的互联网巨头&#xff0c;“三巨头”中的另外两家——百度和阿里&#xff…

python mro c3_Python 19 MRO和C3算法

1.python经典类的MRO经典类的MROclass A: pass class B(A): pass class C(A): pass class D(B, C): pass class E: pass class F(D, E): pass class G(F, D): pass class H: pass class Foo(H, G): passenter description here2. python新式类的MRO, C3算法新式类的MROclass A:…

Java加密与解密的艺术~安全协议~模型分析

模型分析 1、协商算法 RNC&#xff1a;Random Number Client RNS&#xff1a;Random Number Server 2、验证证书 3、产生密钥 PMS&#xff1a;Pre-Master Secret&#xff08;预备主密钥&#xff09; MS&#xff1a;Master Secret&#xff08;主密钥&#xff09; 4、加密交互

漫天风口,一地泡沫,消费机器人四年跌宕史

来源&#xff1a;OFweek 作者&#xff1a;邹大湿提及科技浪潮&#xff0c;AI 和机器人是逃不过的。2018年&#xff0c;AI依旧很火&#xff0c;但几年前曾经燥热的机器人狂潮&#xff0c;似乎凉凉了&#xff1f;那个曾经宣称万亿市场的智能机器人&#xff0c;究竟怎么了&#…

Python操作RabbitMQ

来源&#xff1a;http://www.cnblogs.com/phennry/p/5713274.html 本篇博客主要介绍如何通过Python来操作管理RabbitMQ消息队列&#xff0c;大家在工作中可能遇到很多类似RabbitMQ这种消息队列的中间件&#xff0c;如&#xff1a;ZeroMQ、ActiveMQ、MetaMQ等&#xff0c;我们学…