CVS是Concurrent Version System(并行版本系统)的缩写,用于版本管理.如果大家曾经参与过多人协作开发的项目,大家肯定有这样的痛苦经历:由于多个人同时修改同一个文件, 自己辛辛苦苦修改的程序被别人彻底删除了.另外,如果你的软件/程序已经发布了三个版本,而这时候用户需要你修改第二个版本的东西,也许你会因为只保留了 最新版本而痛哭流涕。还有就是你对程序做了一些修改,但是修改很少,你只想给远方的同事发一个两个版本之间的差别文件,这样可以免于邮箱不够大,网速太慢 之类的问题.为了解决类似这样的问题,以及诸如生成补丁文件,历史版本修改等,一帮黑客(褒义)在原先 Unix 体系里很成熟的 SCCS 和 RCS 的基础上,开发了 CVS。(SCCS:Source Code Control System,RCS:Revision Control System)。
cvs服务器官网简介
我们知道,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 xindou
xindou是你想新添加的用户名 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.