CVS 是 Concurrent Version System(并行版本系统)的缩写,用于版本管理.如果大家曾经参与过多人协作开发的项目,大家肯定有这样的痛苦经历:由于多个人同时修改同一个文件, 自己辛辛苦苦修改的程序被别人彻底删除了.另外,如果你的软件/程序已经发布了三个版本,而这时候用户需要你修改第二个版本的东西,也许你会因为只保留了 最新版本而痛哭流涕。还有就是你对程序做了一些修改,但是修改很少,你只想给远方的同事发一个两个版本之间的差别文件,这样可以免于邮箱不够大,网速太慢 之类的问题.为了解决类似这样的问题,以及诸如生成补丁文件,历史版本修改等,一帮黑客(褒义)在原先 Unix 体系里很成熟的 SCCS 和 RCS 的基础上,开发了 CVS。(SCCS:Source Code Control System,RCS:Revision Control System)。
我们知道,CVS是使用“客户端/服务器”(Client/Server)模式来工作的,这也是优秀版本控制系统的发展趋势。那么我们首先要有一台CVS 服务器(当然这台电脑也可以同时作为客户端来使用)。本节所要介绍的就是如何利用CVSNT架设一台windows操作系统环境下的CVS服务器。 CVSNT顾名思义,肯定是用在windows上的,此软件可以从www.CVSNT.org免费下载最新版本。
CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序.这样,就好象只有一个人在 修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一 修改.这样就可以做到跟踪文件变化,冲突控制等等。
软件安装
1、 目的:用CVSNT作为CVS服务器,用TortoiseCVS或WinCVS或Eclipse3.4.2作为CVS的客户端。2、 CVSNT+TortoiseCVS软件的安装
先安装CVSNT,再安装TortoiseCVS。默认安装即可。
3、Eclipse自带客户端
4、WinCVS默认安装即可
CVSNT服务器端的配置
1、 打开CVSNT的控制面板,运行开始菜单CVSNT菜单文件夹里的“CVSNT Control Panel”即可。确保CVSNT的两个服务启动正常,单击选项卡“Repository configuration”(仓库配置)。CVS仓库是代码的每个版本和所有相关记录在服务器端的储存地。有些时候又称它为主拷贝(Master Copy)。在创建CVS仓库之前,我们首先需要新建一个文件夹用于充当仓库,如创建仓库文件夹 I:\mycvsdata。该文件夹最好不要与程序放在一起,以免万一系统崩溃时破坏数据。
2、服务器配置, 单击“Server Settings(服务器配置)”选项卡,保持默认选项即可。
3、兼容性配置,单击“Compatibility Options(兼容性配置)”选项卡:Any CVS/CVSNT
4、插件配置, 单击“Plugins(插件)”选项卡,默认即可
5、高级选项,单击“Advanced(高级)”选项卡,保持默认即可
6、测试服务器
1)开始菜单-run-cmd,进入命令行环境
2)输入Cvs ,会出现相应的帮助,如果没出现,说明环境变量中的Path值没有设置,你可以手动设置到你的Cvs.exe文件所在的目录
3)set cvsroot=:pserver:administrator@127.0.0.1/mycvsdata
4)输入cvs version ,显示当前CvsNt版本号
Client: Concurrent Versions System (CVSNT) 2.0.58a (client/server
Server: Concurrent Versions System (CVS) 1.11.2 (client/server)
5)cvs login
输入你的Windows登陆密码
6)cvs ls
显示所以module,至少会有一个CVSROOT
7)如果以上步骤都没有错误,说明CVSNT配置成功
添加普通新用户
cvs passwd -a -r administrator xindouxindou是你想新添加的用户名 administrator指定现在用具有admin权限的用户来创建xin用户
否则出现错误信息:
(1) Only administrators can add or change another's password
(2) Empty password used - try 'cvs login' with a real password
cvs [passwd aborted]: authorization failed: server 127.0.0.1 rejected access to /tarena/cvs for user administrator
这条命令后就可以设置这个用户的密码。
成功后可以使用这个用户了
CVS口令文件:
缺省情况下cvs passwd 验证方式所需的passwd文件(位于$CVSROOT/CVSROOT目录下)不存在,需自己创建文件格式如下:
cvsadm:adfWS~!#$@S->:cvsadm
user1::osuser1
user2::osuser2
user3::osuser1
注:passwd文件的格式是:
以“:”为分隔,分为三部分:
第一部分是cvs帐号名(与系统帐号无关,也可与系统帐号名相同)
第二部分(可选项)是加密串,每个系统用户的加密串缺省是在/etc/shadow中,如果cvs帐号不是操作系统的帐号,shadow中是不会有cvs帐号的加密串的,这时就必须手工为cvs帐号生成加密串,可以将其他系统帐号的密码修改成想要的密码(此时shadow文件的加密串跟着改变),在取得加密串后改回去。当第二部分置空时,该帐号以任何口令均可登入cvs server
第三部分(可选项)是一个操作系统帐号, 如果登陆成功, cvs用户就以此系统帐号的身份存取cvs中的源代码,这里的系统帐号是cvs权限控制的关键, 这个系统帐号有什么权限, 以此帐号身份存取cvs的cvs用户就有相同的权限.。注意: 考虑到cvs用户是以某个系统帐号的身份运行的, 此系统帐号应当对repository下的相应目录有写的权限, 这样就存在直接进入目录对文件进行修改的可能, 而这是cvs操作所不允许的,为了避免这种误操作, 建议在产生此系统帐号时使其shell为/bin/false, 并且不设置此帐号的密码,这样可以禁止直接以此系统帐号telnet或者ftp进入CVS Server。
另外,passwd文件中的用户不能重名,否则只有第一个有效。
CVS客户端配置
(一)、TortoiseCVS客户端的配置1、 TortoiseCVS是最佳的CVS客户端软件,使用方便。为了演示配置,先建立一个工程文件夹C:\testprjcvs,然后建立一个文本文件test.txt。
2、 添加项目模块,也就是把项目添加到CVS仓库。方法如下,在项目文件夹上点击右键:点击“创建新模块”后,会弹出,按照选项填写完成后,单击“确认”,项目添加到仓库。

3、察看C:\testprjcvs,发现上面有个绿色标记,说明项目已经成功添加到仓库了。
4、 打开项目文件夹,添加一个文件到仓库文本文件,单击确定,完成添加。添加后,还需要提交操作,才能将文件加入到CVS,右键单击test.txt的文件,提交,也可以在空白处单击右键,选择提交,提交所有的没有提交的操作。
(二)、用CVSNT或者TortoiseCVS命令行命令作为客户端软件操作CVS
1、 将CVSNT或者TortoiseCVS安装目录添加到系统变量CVSNT或者TortoiseCVS
2、 为了操作方便,可以设置一个环境变量
CVSROOT=:pserver:yutian@localhost:2401/mycvsdata,然后从命令行用命令进行登陆,
命令如下:
cvs login
然后输入密码
然后就可以通过命令行可以执行cvs的各种操作了。在此不做详细介绍。
注意:CVSROOT的写法是: :pserver:username@hostname(或IP地址):CVS仓库路径
这个格式是绝对不能错的,否则CVS命令就不能正常执行。
下面我解释一下上面的字符串的含义:
1、“pserver” 是最常用的一直CVS远程访问方式;
2、“username” 是指客户端在服务器上的用户名,也就是我们在上面的“配置CVS帐号”一结中讲到的;
3、“hostname” 是CVS服务器的主机名,也可以是它的IP地址;
4、“CVS仓库路径” 是一个CVS仓库所在的目录,用于区分你要访问的是哪个仓库(因为一个CVS服务器上可能有多个不同仓库)。
例如::pserver:leizhimin@icisserver:/zfvims
(三)、CVSNT+Eclipse的CVS的配置
1、 用Eclipse创建一个项目EclipseCVS,并添加一个测试类
2、 将项目添加到CVS仓库。单击“共享项目”,弹出设置窗口,填写配置后,单击下一步。。。
3、 修改CVSTest.java文件,然后提交,看看版本有什么变化
4、 在Eclipse里将项目从CVS仓库里导入到本地,点选“CVS中的项目”,然后单击“下一步”。。。选择“Java项目”,单击“下一步”。。。
(四)、CVSNT+IntelliJ IDEA 5.12的CVS的配置
1、 创建一个测试项目IdeaCVS
2、 然后配置版本控制工具CVS,点击“配置选项”按钮,单击“版本控制工具”,选择CVS,然后单击“OK”。
3、 回到Idea窗口,开始导入项目到CVS仓库,点击“Import into CVS...(导入到CVS)”,单击“Configure...”来配置一个CVS,单击“+”,添加一个配置,并填写单击“Edit by Field...”。。。。
(五)、CVSNT+WinCVS配置
* WinCvs-1.3.17b在菜单"Admin"-"Preferences"下的"General"选项卡中设置
Authentication:指的是认证方式选择Pserver
Path:指CVS的Repository(即仓库)的存放路径
cvsnt-2.0.41的仓库存放路径为d:\cvs_repository格式
cvsnt-2.5.03.2382的仓库存放路径为/cvs_repository格式
Host address:cvs服务器的主机地址
User name:登陆时使用的用户名
CVSROOT:上面四项配置好以后,此项会自动生成,格式如:
:pserver:cvsuser@127.0.0.1:d:\cvs_repository或
:pserver:cvsuser@127.0.0.1:/cvs_repository
* WinCvs-2.0.9在菜单"Admin"-"Command Line Setting"下的"Setting"选项卡中设置
选中下面的"CVSROOT"复选框,点击后面的按钮,会弹出CVSROOT的设置框
Protocol:下拉列表中选择"Pserver"
Repository:填写d:\cvs_repository或/cvs_repository,根据服务器的版本不同,填写不同的内容。
Keywords:此项下面是登陆上面的仓库所需要的基本信息
username--登陆用户名
password--可以先留空
hostname--服务器地址,如127.0.0.1
下面几项是端口、代理服务器信息等,根据实际需要填写。
填写好上面信息以后,会看到下面的"CVSROOT preview"中有如下信息:
:pserver:cvsuser@127.0.0.1:d:\cvs_repository或
:pserver:cvsuser@127.0.0.1:/cvs_repository
这里要重点说明的是Keywords项的填写,当使用cvsnt-2.5.03.2382服务器时,这里面的username,password,hostname,port项都不见了,只剩下proxy,proxyport,Tunnel和
proxyuser,proxypassword。
所以我们要手动在Repository项中天上缺失的信息,这时Repository项的内容如下:
:/cvs_repository
上面就是发用户名cvsuser和服务器地址127.0.0.1手动添加到了这里。
此外在WinCVS的使用过程中,可能会有一下错误信息提示:
cvs [server aborted]: can't create temporary directory C:\Program Files\cvsnt\Temp/cvs-serv1504: Permission denied
这是由于这个Temp目录所在的磁盘分区是NTFS格式的,需要你在这里目录上为当前登陆仓库的用户分配write权限,如果是XP系统,可以通过取消"文件夹选项"--"查看"下面的"使用简单文件共享"选项以后,再到这个Temp文件上点击鼠标右键属性,到"安全"选项中为你的用户分配写权限。或是干脆通过修改CVSNT服务器的配置,将这个Temp目录指到一个Fat32分区上的目录就可以了。
总结
1、 CVS是一个版本控制工具,是程序员必须掌握的一个工具,对CVS的使用程度也从侧面反映了一个程序员开发水平。一旦接触了CVS,就离不开它。CVSNT和TortoiseCVS都是免费的功能强大而且使用方便的CVS工具。2、 CVS配置的还很多,本文旨在让读者能对CVS有个初步认识,并且能在日常的开发中快速的配置并使用CVS。
3、 CVS还有一个重要问题在此没有提到,就是用户管理。这一块比较复杂,不同的CVS服务器管理也有差别,还在进一步研究中。





















大小: 77.7M
git图形化软件(tortoisegit)v2.13.0.1 官方中文版【64位|32位】
VMware vSphere 5安装无毒版
邮件服务器(Winmail Mail Server)4.4 中文破解版
Windos Apache Mysql PHP集成安装环境(WampServer)V3.0.6 官方版
ISAPI Rewrite3 fullv3.1.0.73 绿色版 安装版
MaxDOS 网刻服务端(MaxNGS)2.01 绿色免费版
最简单的ASP本地调试工具NetBox(aspweb.exe)绿色免费版
Gene6 FTP Server(G6FTP)v3.10.0.2中文破解版
BareTailPro 已注册版(mysql日志查看工具)2.50a 绿色中文版
PC变高性能路由器(MikroTik RouterOS)5.16 自动破解版
Xlight FTP Serverv3.6.5 汉化中文注册版
端口扫描工具FreePortScannerv3.3.9 绿色英文版
ossbrowser(Windows32位+64位版)V1.16.0 最新版
服务器安全一键配置工具v1.0 绿色免费版