(二)版本控制管理器之CVS(上)
在前一篇《(一)版本控制管理器之发展史》的介绍中,有提到古典时期的CVS,那什么是CVS?CVS特点是什么?怎么个用法?等一系列的问题,虽然这个版本控制管理器早已过时,但大家了解下也不妨,也便于我写文章。下面我会为大家一一介绍CVS这个版本控制,主要分几个大模块进行:
(1)CVS:CVS 是 Concurrent Version System(并行版本系统)的缩写,用于版本管理(我们熟悉的SVN是它的改进、升级版,在后面的文章我会讲述),早在CVS上一代版本,团队开发的项目,并不支持多个用户同时修改同一份文件,若其中一方辛辛苦苦地编写好的程序,被另一个用户覆盖删掉是怎么样的一种感受,想必手已经拿起大刀了吧。所以CVS的出现正好处理了这个问题的发生。CVS是使用“客户端/服务器”(Client/Server)模式来工作的,这也是优秀版本控制系统的发展趋势。那么我们首先要有一台机器充当CVS服务器,在这台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序并由仓库管理员统一管理这些源程序。这样,就好象只有一个人在修改文件一样.避免了冲突,当然必须存在CVS客户端的一方与服务端进行连接,每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一 修改.这样就可以做到跟踪文件变化,冲突控制等等。
(2)软件安装:.
1)CVS服务器:CVSNT
2)CVS客户端:TortoiseCVS
3)安装过程:安装简单,先安装CVS服务器,再安装CVS客户端,默认安装即可,安装后重启电脑。
(3)CVSNT服务器端的配置
1)仓库配置:打开CVSNT的控制面板,运行开始菜单CVSNT菜单文件夹里的“CVSNT Control Panel”即可。如下图
如上图,确保CVSNT的两个服务启动正常,CVS仓库是代码的每个版本和所有相关记录在服务器端的储存地。有些时候又称它为主拷贝(Master Copy),为什么呢,我们将在后面的章节中了解到。在创建CVS仓库之前,我们首先需要新建一个文件夹用于充当仓库。如下图
单击选项卡“Repository configuration”(仓库配置),该文件夹最好不要与程序放在一起,以免万一系统崩溃时破坏数据。然后,点击“开始”->“程序”->“CVS for NT”->“configure server”,出现对话框后选择“Repositories”选项卡,就会出现如下对话框:
如上图,因为是本地计算机上架设CVS服务器,所以填写127.0.0.1,也可以填写为localhost;然后单击“Add”(添加),添加一个仓库,然后再单击“添加”按钮,浏览刚才新建的仓库文件夹I:\mycvsdata如下图:
如上右图,单击“确定”按钮:
如上图,单击“是”,就初始化文件夹作为仓库文件夹了,初始化后,在文件夹里面会生成一个CVSROOT的文件夹,里面有好多的文件和子夹,都是仓库的配置信息。此时仓库配置选项卡如下图:
2)服务器配置:单击“Server Settings(服务器配置)”选项卡,保持默认即可,如图:
3)兼容性配置: 单击“Compatibility Options(兼容性配置)”选项卡,如图:
4)插件配置: 单击“Plugins(插件)”选项卡,如图:
5)高级选项:单击“Advanced(高级)”选项卡,保持默认即可,单击“确定”,完成服务器的配置,如下图:
(4)TortoiseCVS客户端的配置:
1)TortoiseCVS是最佳的CVS客户端软件,使用方便。为了演示配置,先建立一个工程文件夹C:\testprjcvs,然后建立一个文本文件test.txt。如图:
2)添加项目模块,也就是把项目添加到CVS仓库。方法如下,在项目文件夹上点击右键,按下图操作:
3)点击“创建新模块”后,会弹出如图:
4) 如上图,填写完成后,单击“确认”,项目添加到仓库,并提示:
5) 单击确定,完成添加。察看C:\testprjcvs,发现上面有个绿色标记,说明项目已经成功添加到仓库了。分别看项目文件夹、仓库文件夹如下:
6)打开项目文件夹,添加一个文件到仓库,操作过程如下:
7) 出现提示,因为是文本文件,所以单击确定,完成添加,如:
8) 添加后,还需要提交操作,才能将文件加入到CVS,右键单击test.txt的文件,提交,也可以在空白处单击右键,选择提交,提交所有的没有提交的操作。
本篇文章到这里就结束了上半段,以上主要是为大家了解CVS的描述、软件、配置设置等操作,在下半段我会为大家实战下在Visual Studio开发工具如何结合CVS一同开发使用,若本篇文章存在不足,请留言赐教。
A young ilder ~ an old beggar !
(二)版本控制管理器之CVS(上)的更多相关文章
- (三)版本控制管理器之CVS(下)
在上一篇文章<(二)版本控制管理器之CVS(上)>中,我为大家介绍了什么是CVS.CVS的特点.CVS的安装.CVSNT服务器的配置.TortoiseCVS客户端的配置等,本篇文章继续为大 ...
- (四)版本控制管理器之VSS
在上一篇<(二)版本控制管理器值CVS(下)>的文章中,我为大家介绍了CVS这个版本控制器,接下来我继续跟大家分享介绍下一个版本控制管理器--VSS,为什么要说这个版本控制器呢?早已过时的 ...
- Android学习系列(二)布局管理器之线性布局的3种实现方式
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669 LinearLayout是Android控件中的线性布局控件,它包括的子控件 ...
- 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)
摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...
- 源代码管理工具(上)-SVN基本使用
------------------------------------------------------SVN简介和搭建 ------------------------------------- ...
- 电影管理器之XML存储电影信息数据
电影管理器之XML存储电影信息数据 但凡管理器之类的软件,存储数据是必不可少的.存储数据的话,有几种选择.一是用数据库,把数据存储到数据库里:一是用文本文件,把数据存储到文本文件里:一种是利用XML文 ...
- 编程实战——电影管理器之XML存储电影信息数据
但凡管理器之类的软件,存储数据是必不可少的.存储数据的话,有几种选择.一是用数据库,把数据存储到数据库里:一是用文本文件,把数据存储到文本文件里:一种是利用XML文件,把数据对象转换为XML后,存储到 ...
- 通过TortoiseGit来使用Github或Visual Studio Online版本控制管理
一.前言 关于Git源码不再多阐述,它就是一款开源分布式版本控制工具,它在源码管理领土上目前为止,使用者比例很大,越来越多的人使用该工具来管理项目源码,且相当多的开源的项目都移步到Github中,如: ...
- git版本控制管理实践-4
vcs: version control system 版本控制系统 local vcs, 集中式版本控制系统: centralized vcs; 分布式vcs: distributed vcs Lo ...
随机推荐
- [Swift]LeetCode137. 只出现一次的数字 II | Single Number II
Given a non-empty array of integers, every element appears three times except for one, which appears ...
- Linux清空文件内容
日志文件太多,需要清空: echo "" > mylog.log
- ios 自动化构建 code-select: error: tool 'xcodebuild' requires Xcode, but active developer directory.....
问题描述: Pod installation complete! There are 2 dependencies from the Podfile and 3 total pods installe ...
- shell的exec命令
工作中遇到运维人员挂supervisor的时候建议启动使用命令control.sh start, 并且在control.sh 里面启动命令: exec -c ./bin/xxx -f config/x ...
- 死磕 java集合之CopyOnWriteArrayList源码分析
欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. 简介 CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过 ...
- Android Hybrid App自动化测试实战讲解(基于python)
1.Hybrid App自动化测试概要 什么是Hybrid App? Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App ...
- SQL Server查询所有的表名、字段名、注释
SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名=a.n ...
- Docker系列10—容器编排工具Docker Compose详解
本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...
- [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口
函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...
- 根据数值获得概率密度pdf和累积密度分布cdf(MATLAB语言)
y=randn(1,3000); % 生成1-by-3000的标准正态分布随机数 ymin=min(y); ymax=max(y); x=linspace(ymin,ymax,20); %将最大最小区 ...