Windows下搭建的CVS服务器

CVSNT+TortoiseCVS1

 

一、   环境:
Windows XP
CVSNT 2.5.03 (Scorpio) Build 2382
TortoiseCVS 1.8.26
Eclipse 3.4.2
WinCVS 1.3

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

我们知道,CVS是使用客户端/服务器Client/Server)模式来工作的,这也是优秀版本控制系统的发展趋势。那么我们首先要有一台CVS 服务器(当然这台电脑也可以同时作为客户端来使用)。本节所要介绍的就是如何利用CVSNT架设一台windows操作系统环境下的CVS服务器。 CVSNT顾名思义,肯定是用在windows上的,此软件可以从www.CVSNT.org免费下载最新版本。

CVS
的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序.这样,就好象只有一个人在 修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一 修改.这样就可以做到跟踪文件变化,冲突控制等等。

三、 软件安装
1
 目的:用CVSNT作为CVS服务器,用TortoiseCVSWinCVSEclipse3.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:[email protected]/mycvsdata
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权限控制的关键, 这个系统帐号有什么权限, 以此帐号身份存取cvscvs用户就有相同的权限.。注意: 考虑到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

(三)、CVSNTEclipseCVS的配置
1
 Eclipse创建一个项目EclipseCVS,并添加一个测试类

链接cvs仓库



2
 将项目添加到CVS仓库。单击项目,team-shareproject 点击下一步 奖项目提交到仓库
3
 修改CVSTest.java文件,然后提交,看看版本有什么变化

4
 Eclipse里将项目从CVS仓库里导入到本地,点选“CVS中的项目,然后单击下一步。。。选择“Java项目,单击下一步。。。



总结
1
 CVS是一个版本控制工具,是程序员必须掌握的一个工具,对CVS的使用程度也从侧面反映了一个程序员开发水平。一旦接触了CVS,就离不开它。CVSNTTortoiseCVS都是免费的功能强大而且使用方便的CVS工具。

2
 CVS配置的还很多,本文旨在让读者能对CVS有个初步认识,并且能在日常的开发中快速的配置并使用CVS

3
 CVS还有一个重要问题在此没有提到,就是用户管理。这一块比较复杂,不同的CVS服务器管理也有差别,还在进一步研究中。

 

猜你喜欢

转载自lanxulin.iteye.com/blog/659699
今日推荐