linux环境下轻松搭建CVS服务器
cvs的使用

第一章 Cvs概述1.1CVS简介及基本原理CVS 的全称是Current Version Control. CVS是一种GNU 软件包.由Intersolv公司开发。
它是一种基于RCS系统的维护工具.它明确的将源文件的存储和用户的工作空间独立开来,有在一定的模式上扩展了RCS的恢复提交功能. 并使其有利与并行开发.CVS 将源文件的RCS 文件根据其源码树的层次集中在一个目录下,该目录的绝对路径由环境变量CVSROOT 定义.可见该目录可以分成两部分:一部分为${CVSROOT}/CVSROOT,它包含CVS所需的一些管理文件.另一部分为源文件所形成的RCS 文件,并按软件开发的源码树的结构来构成.1.2CVS 在进行源代码管理时的特点1.2.1源代码空间与用户空间分离.CVS 系统将源代码文件放在repository下,用户要修改文件必须将repository 下的文件作一个拷贝之后才能进行。
1.2.2并发访问CVS 系统允许多个开发人员同时获取同一文件的的同版本源文件.开发人员提取一个文件时,将在自己的工作空间建立一个与其他开发人员相互独立的拷贝,此文件的版本号与文件“头”版本相同,除非他用commit 命令完成版本的永久性升级.而此时,其他用户可用update 命令是自己的版本号与”最新的头版本号”相一致.CVS系统是一个Copy-Modify-Merge 的算法而不是lock-modify-unlock机制这种算法的好处在于,软件开发人员可以得到一份源文件的拷贝(Copy),并不会对该文件上”锁”,因此为并行开发提供了可能,在得到拷贝后, 开发人员可以在自己的开发环境下进行修改(Modify),然后提交自己修改后的文件,与源文件进行合并(Merge)形成新的版本。
1.3专业术语:repository:仓库。
在cvs里,就是存放版本历史记录的地方。
pserver:是cvs用来接受远程的cvs 命令用的。
cvs命令

cvs命令1.安装1.1 建立及初始化CVS工作目录#mkdir /src#msdir /src/cvslib#cvs -d /src/cvslib init //初始化cvs工作目录,可以看到出现CVSROOT目录,表示初始化成功。
1.2 建立系统用户,包括管理员组和普通用户组两种权限。
#groupadd (CVSAdmin) //建立管理员组#groupadd (CVSUser) //建立普通用户组#useradd -g (CVSUser) -M (CVSUser_Sys1)//不用添加Home目录(-M)而直接添加拥有访问CVS权力的系统用户CVSUser_Sys1,属于CVSUser组#passwd CVSUser1//设定CVSUser_Sys1的系统登陆密码(应该可以对真正的CVS用户透明)1.3 设定各组系统用户权限,作为CVS不同类型用户的代表#chgrp -R (CVSUser) /src/cvslib //?添加新的工程是否直接在此处修改权限?#chmod -R u=rx,g=rx /src/cvslib //设定组用户权限此外:<1>CVS用户(组)必须对/src/cvslib目录有执行权(列表权)和写权利,可以没有读权利;#chmod u=wx,g=wx /src/cvslib (o-other不改变)<2>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录及其中所有文件的读权限(r)和列表权限(x);#chmodg=rx /src/cvslib/CVSROOT (o-other不改变)<3>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录下history文件的写权限;#chmod u+w,g+w /src/cvslib/CVSROOT/history (o-other不改变)<4>CVS用户(组)如果希望拥有操作(checkout等)某个项目(CVS 中称为模块)代码等资料的权利,必须拥有对该目录及其子目录的rwx 权限。
CVS客户端安装及使用简单指南

CVS客户端安装及使用简单指南CVS是一种源代码版本控制系统,常用于协调团队成员之间的代码开发。
它可以帮助团队成员在多个工作站上共享和更新源代码,使得多人合作开发更加高效和方便。
本文将介绍如何安装和使用CVS客户端。
一、安装CVS客户端3.双击安装包文件,按照安装向导的指示完成安装。
二、配置CVS客户端1.打开终端(或命令提示符),输入以下命令查看CVS客户端是否已正确安装:```$ cvs --version```如果显示了CVS的版本信息,则说明安装成功。
```$ cvs -d <CVS服务器地址> login```其中,`<CVS服务器地址>`为您的CVS服务器的地址。
然后按照提示输入用户名和密码。
3.配置CVS客户端的全局忽略设置,该设置将决定哪些文件在提交代码时被忽略。
在终端中输入以下命令:```$ cvs -d <CVS服务器地址> edit-cvsroot```三、使用CVS客户端1.检出代码:在终端中输入以下命令,将代码从CVS服务器中检出到本地:```$ cvs -d <CVS服务器地址> checkout <代码仓库路径>```2.更新代码:在终端中进入代码目录,输入以下命令更新本地代码:```$ cvs -d <CVS服务器地址> update```这将与CVS服务器同步,将最新的代码更新到本地。
3.提交代码:在终端中进入代码目录,修改完代码后,输入以下命令提交代码到CVS服务器:``````CVS将会检测并记录您的代码修改,并将其提交到服务器上。
4.比较代码:通过比较工具可以比较不同版本的文件或文件夹之间的差异。
在终端中输入以下命令,比较两个版本的文件差异:```$ cvs -d <CVS服务器地址> diff -r <版本1> -r <版本2> <文件路径>```其中,`<版本1>`和`<版本2>`为要比较的版本号,`<文件路径>`为要比较的文件路径。
Linux下常用cvs命令有哪些

Linux下常用cvs命令有哪些由于好多读者问店铺几时给出关于Linux的cvs命令的文章,所以小编就通过查阅了相关资料整理了Linux下常用cvs命令给大家,下面就由小编具体介绍下Linux下常用cvs命令有哪些。
Linux下常用cvs命令1.登录:$exportCVSROOT=:pserver:username@the_server_name:/home/cvsroot Note:pserver是访问方式,如果服务器设置的是口令认证,则是 pserver。
username是 CVS服务器的用户名,可以根据你的设置修改;the_server_name是CVS服务器的名称或者IP地址;/home/cvsroot是你的CVS服务器的CVSROOT目录,根据你的CVS服务器设置做修改或者询问管理员.登陆CVS服务器:$cvs login这时候cvs会问你口令,请把你在CVS服务器上的口令敲进去:Passwd:xxxxxxxxLinux下常用cvs命令2. 提交项目--importcvs import [-options] repository vendortag releasetag...Note: 该命令将当前目录下的所有文件(包括子目录)导入源代码储存库。
repository :项目名称,在CVS服务器上会创建以这个名字命名的仓库。
vendortag : 项目分支的总标记。
(不常用)releasetag :标识文件的输入层次的标记。
(一般用start)使用import提交项目的时候,CVS会要求对项目进行说明。
在默认状态下,CVS会弹出文本编辑器。
用户也可以用-m “log_message”来输入说明信息。
例如$cvs import -m "upload the first time as new module" judecvs v_0_0_1 start提示:import 一般在第一次导入module时使用。
CVS的配置和使用

CVS的配置和使⽤下⾯是搜集的资料///////////////////本⼈⽤的是CVSNT 2.0.51c,⽤最新的版本在Eclipse中死活不能列出服务器⾥内容,换了这个版本就好了,现在也不知道怎么回事。
⾸先安装,如果是使⽤安装包的版本,很简单,⼀路NEXT;如果是使⽤直接解压的版本,解压缩后把cvsnt.cpl和setuid.dll复制到%WINROOT%\system32下,并在当前⽬录下执⾏以下命令注册CVSNT系统服务:cvsservice -icvslock -i完成后可以在控制⾯版⾥看到CVS for NT的图标,在⾥⾯先启动CVS Service和CVS Lock Service,注意如果使⽤的是解压的版本,还要在CVSNT⽬录下运⾏⼀下genkey⽣成SSL的密钥:genkey.exe cvsnt-default.pem并在SSL settings中选择⼀下刚刚⽣成的密钥⽂件,这个好像没有SSL登陆就没⽤,假设⼀下,没⽤过。
如图:设置Repository,就是CVSNT资源库的位置,切换到Repositories选项卡,Add添加CVSNT资源库的位置,此处Location选为E:/CVSNT/Repository,Name是访问CVSNT服务器时使⽤的路径名,按默认即可,本⼈是/CVSNT/Repository,如果是新建的⽬录,会提⽰你是否初始化Repository,同意即可。
如图:切换到Advanced,先在Use local users for pserver authentication instead of domain users和Pretend to be a Unix CVS version钩上,这是让CVSNT使⽤本地账户作为pserver认证⽅式以及让CVSNT服务器模拟为Unix CVS服务器,如图:CVSNT服务器已经配置好了,接下来是我使⽤过程中遇到问题最多的⽤户配置。
cvs的基本运用

要了解怎样用Linux的cvs,须知道在cvs中常用到的linux命令, touch file rm –f file rm –rf dir 创建file文件 强制删除file文件,而 rm file 删除file文件 强制删除某个名为dir的目录
cd dir 进入名为dir的目录或路径(dir可以为. 或.. 或–,其中.表示为当前目 录, .. 表示为上一级目录, - 表示为上次所在的目录) pwd mkdir dir mv file1 file2 表示当前所在的目录 表示创建名为dir的新目录 表示将file1更名为file2
Ⅴ,新增文件到仓库
cvs status也可以对单个文件使用。 cvs add file表示新增文件名为file的文件到仓库(可以是一个file也可以是多个file)
注意二进制文件, 如扩展名为.doc .gif .jpg .xls .ppt 等的文件 这些文件需要用cvs add –kb file.doc来进行加入。 在使用了后,必须使用cvs ci才会起作用。
下面是一些update的参数选项,而update简写为up cvs up –d 表示下载仓库中的新目录
cvs up –P(大写)表示不下载仓库中的空目录(-d 和–P可以同时使用)
cvs up –j revision1 –j revision2 file 的功能和 cvs co –j revision2 –j revision2 file类似,故而不做 说明了 .同理-j的也与前面的类似,这里也不做说明。 cvs up -A file表示取消文件的粘滞性(即长久性)。 cvs up –C 表示以仓库的版本来覆盖沙箱的文件 cvs up –R表示以递归的方式更新沙箱当前目录内的所有文件(包括子目录) cvs up –l 表示只更新当前沙箱与仓库同步
CVS服务器及WinCvs客户端介绍
谢谢! 谢谢!
WinCvs配置 WinCvs配置
2.Globals标签上注意" read-only"和 2.Globals标签上注意"checkout read-only"和 "prune Globals标签上注意 remove) directories"两个选项 两个选项, (remove)empty directories"两个选项,分别表 检出时文件只读” 自动删掉空目录” 示“检出时文件只读”和“自动删掉空目录”。
CVS服务器配置 CVS服务器配置
安装完成后需要配置CVS服务器的配置文件, 安装完成后需要配置CVS服务器的配置文件,使其能正 CVS服务器的配置文件 常工作。 常工作。 配置/etc/services文件 配置/etc/services文件 首先,查看/etc/services文件 是否存在如下配置: 文件, 首先,查看/etc/services文件,是否存在如下配置: cvspserver 2401/tcp #cvs client/server operations cvspserver 2401/udp #cvs client/server operations 如不存在,则将上述两行添加到services文件中, services文件中 如不存在,则将上述两行添加到services文件中,使其 成为Linux的一种服务也就是CVS服务器例程的入口。 Linux的一种服务也就是CVS服务器例程的入口 成为Linux的一种服务也就是CVS服务器例程的入口。
WinCvs配置 WinCvs配置
ATM的改造 ATM的改造 实施计划
一、CVS服务器
CVS 简 介
CVS 是 Concurrent Version System(并行版本系统 ( 的缩写,用于版本管理.CVS是目前比较流行与优秀的 )的缩写,用于版本管理.CVS是目前比较流行与优秀的 版本管理与控制工具, 版本管理与控制工具,它深受大多数开发人员与系统管 理的喜爱,同时也是用来管理其它日常文档( word工 理的喜爱,同时也是用来管理其它日常文档(如word工 作文档之类)的一个强有力的工具。 作文档之类)的一个强有力的工具。 它是一种基于RCS系统的维护工具. 它是一种基于RCS系统的维护工具.它明确的将源文件 RCS系统的维护工具 的存储和用户的工作空间独立开来, 的存储和用户的工作空间独立开来,有在一定的模式上扩 展了RCS的恢复提交功能. 并使其有利与并行开发. RCS的恢复提交功能 展了RCS的恢复提交功能. 并使其有利与并行开发.
简介cvs流程
Cvs上文件状况 1. 要了解cvs服务器上文件状况可点击鼠标右键version graph就会显示该文件的版 本控制过程 2. 也可点击鼠标右键history察看文件上至cvs服务器每一次的日期时间作者版 2. 本地安装cvs客户端并配置
将文件夹加入到cvs版本控制中
1. 对要做cvs版本控制的文件夹点击鼠标右键添加到cvs中 即make new module 在服务器一侧就会建立一个新的文件夹 本地文件夹就会有绿色打勾标记,文件夹中的文件会有蓝色问号标记 2. 对该文件夹或文件点击鼠标右键添加内容到cvs中 即add contents 文件夹中的文件就会由蓝色问号标记变成橙色加号标记 3. 对该文件夹或文件点击鼠标右键提交到cvs服务器上 即commit 文件夹中的文件就会变成绿色打勾标记 此时cvs服务器上就建立好了该文件夹及文件,本地的文件就可进行cvs版本控制
文件更新
1. 一般一个系统会同时有多人开发,所以开发小组成员在改程序前应从cvs服务器 上把最新版本文件下传更新到本机,即点击鼠标右键update 2. 当本机文件有修改后,文件就有橙色箭头标记 3. 重新提交commit到cvs服务器之前为了防止小组其他成员有修改过该文件,应 该先从服务器上把文件update到本机的另一个文件夹里做比较确认后方可重新 提交到服务器上更新修改后的文件 4. 比较确认的动作可用uedit手动修改合并
CVS搭建及应用
CVS搭建及应用版本管理系统可以帮助开发人员有效地管理软件资源的版本问题。
CVS(Concurrent Version System)是目前最常用的版本管理系统,而Eclipse 是最流行的开放源码的集成开发环境。
在Eclipse 中,与CVS 相关的功能被统称为小组开发环境。
本系列的第1 部分不仅解释了CVS 的相关术语,还详细介绍了小组开发环境的建立过程;本系列的第2 部分则试图以一种简明易懂的方式来讲解Eclipse 小组开发环境的使用方法。
1.前言版本管理系统可以帮助开发人员有效地管理软件资源(源代码文件、配置文件等)的版本问题。
版本管理系统可以帮助开发人员追踪文件的修改履历;防止文件因疏忽而被错误的修改、删除;在小组开发环境中,帮助多个开发人员保持文件的同步;通过文件的修改履历,还可以帮助开发人员发现修改过程中产生的BUG,因此应用CVS可以在一定程度上提高软件的开发效率。
现在很多开发工具中都集成了CVS功能,例如Eclipse、InteliJ、NetBeans 等;虽然Eclipse等集成开发环境(IDE)对CVS提供了很好的支持,可以大幅降低CVS 的使用难度,但是很多开发人员在使用CVS时还是不知所措。
笔者认为这是由于他们不了解CVS的相关术语及CVS的工作模式所致。
因此,本文首先介绍CVS的相关术语及CVS 的工作模式。
然后通过一些实例与应用场景, 展示如何在ECLIPSE中使用小组开发环境。
本文所使用的ECLIPSE没有安装本地语言包插件,操作界面为英文。
但理解了相关术语后,读者即使在中文环境中也能正常操作。
2.CVS安装2.环境安装LINUX与WINDOWS是目前应用最普及的操作系统。
下面首先介绍CVS服务器在两种操作系统上的安装与配置过程,然后介绍如何从Eclipse连接CVS服务器,最后介绍如何使用ECLIPSE共享模块。
无论后台的CVS安装在何种操作系统之上,对于Eclipse来说,与CVS服务器建立了连接之后其使用方法是一样的。
CVS配置
1.安装CVS (只安装cvsnt_setup.exe就行了)首先要正确安装并配置好CVS服务器,这里我们推荐CVSNT,可以下载CVSNT 2.0.51a,安装并启动CVSNT:2.配置cvsnt然后切换到Repositories面板,添加一个Repository,命名为/newCVS,CVSNT会提示是否初始化这个Repository,选择“是”, Next :然后在Advanced面板上选中“Pretend to be a Unix CVS version”:然后,在Windows账户中为每一个开发人员添加用户名和口令。
3.建立cvs工程现在,CVSNT的安装配置已经完成,下一步,启动Eclipse,我们可以使用原有的OK工程,或者新建一个Project,然后选择菜单Window->Show View->Other,打开CVS->CVS Repositories:然后点击按钮,添加一个Repository:注意:Host处也可以填写IP地址。
Reository path:处填写上面创建的/newCVS .用户名和口令直接填Windows的其他用户名和口令,然后选中“Validate Connection on Finish”,点击Finish完成:首先,我们要将一个现有的工程放到CVS服务器中,切换到Package Explorer,选中OK工程,右键点击,选择Team->Share Project…Finish :使用刚才我们添加的Repository,继续,并将所有文件都添加到CVS中,最后Eclipse提示Commit:填入一个简单的注释,确定,然后Eclipse会把整个工程提交到CVS服务器,可以在Package Explorer 中看到图标发生了变化,Index.jsp文件后面会有版本号1.1。
在CVS Repositories面板中刷新,可以看到刚添加进来的工程:在团队开发中,当创建了一个基本的工程并提交到CVS后,别的开发人员首先要Check Out这个工程到各自的本地计算机上,这里为了演示,首先我们在Package Explorer中删除OK工程,然后打开CVS Repositories(如果没有看到Repository就按照上面的方法添加Repository),选择OK工程,右键点击,选择Check Out As…:作为一个Project签出,就可以在Package Explorer中看到签出的工程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CVS是一种广泛应用的、开源的、透明于网络的版本控制系统。用户使用CVS时,首先要架设一台CVS服务器,在CVS服务器上导入项目实例、设置CVS项目访问控制等。而客户则通过客户端来访问CVS服务器,客户可以取得项目最新代码副本,提交自己修改的代码等,而客户可以从Internet、LAN甚至本机来访问CVS服务器。下面,我就带领大家在Linux环境下架设一台CVS服务器,希望能够对想要学习CVS服务器架设的朋友带来一些帮助。 1、下载源码 通过搜索引擎找到CVS的源代码包,也可以从CVS的官方网站cvshome.org上寻找,由于CVS历史上也出现过一些安全漏洞,所以建议要定期去其官方网站上看看有没有最新版本推出。 2、编译安装 [root@terry src]# tar -xjpvf cvs-1.12.5.tar.bz2 [root@terry src]# cd cvs-1.12.5 [root@terry cvs-1.12.5]# ./configure ——prefix=/usr/local/terry_yu/cvs ——disable-server-flow-control [root@terry cvs-1.12.5]# make [root@terry cvs-1.12.5]# make install 以上指令将CVS安装到/usr/local/terry_yu/cvs这个目录上。 注:除了使用源码包进行安装之外,还可以使用RPM包来安装。 3、设置启动CVS服务 在Linux上CVS服务可以通过inetd、xinetd或tcpwrapper等来启动,其中inetd由于安全理由在许多场合已经被xinetd所取代了,这里我们使用xinetd来启动CVS服务。 在/etc/xinetd.d目录下为CVS服务创建一个配置文件,比如:/etc/xinetd.d/cvspserver,编辑/etc/xinetd.d/cvspserver,输入以下内容:
service cvspserver { disable = no socket_type = stream wait = no user = root env = HOME= server = /usr/bin/cvs server_args = -f ——allow-root=/home/cvsroot pserver } 注: 1)pserver表示是口令认证的访问方式,这是最常用的方式,其他还有gserver,kserver,ext,如果想要更高的安全性可以使用ssh来加密口令和数据流,不过这里为了
用户使用的方便,仍然选的是pserver. 2)——allow-root是指定Repository的目录,可以建立多个Repository 然后重新启动xinetd: [root@terry bin]# /etc/rc.d/init.d/xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] 重新启动xinetd服务后,CVS服务也开始工作了。共2页。 4、在CVS服务器端建立Repository 首先要创建一个名为cvs的组和一个名为cvsroot的用户,以后要访问CVS服务的用户加入cvs这个组: [root@terry root]# groupadd cvs [root@terry root]# useradd -g cvs -s /sbin/nologin cvsroot [root@terry root]# chown -R cvsroot /home/cvsroot 接下来进行初始化: [root@terry root]# cvs -d /home/cvsroot init 这样在/home/cvsroot目录中就产生了CVSROOT目录,其中存放了一些配置文件,如config等,然后设置权限: [root@terry root]# chown -R cvsroot.cvs /home/cvsroot [root@terry root]# chmod -R ug+rwx /home/cvsroot [root@terry root]# chmod 644 /home/cvsroot/CVSROOT/config 为了CVS系统的安全,我们要修改/home/cvsroot/CVSROOT/config文件,将“#SystemAuth =no”前面的注释号#去掉,即改为“SystemAuth =no”,然后给开发者
们逐一建立账号,新建的不要分配用户目录,因为它将作为一个虚拟用户帐号来使用,具体命令如: [root@terry root]# useradd -g cvs -M bogus [root@terry root]# passwd bogus 上面的命令就创建了一个并没有Home目录的用户bogus,接着将系统的shadow文件复制到CVSROOT, 并重命名为passwd: [root@terry root]# cp /etc/shadow /home/cvsroot/CVSROOT/passwd [root@terry root]# chmod 0644 /home/cvsroot/CVSROOT/passwd 然后修改passwd文件,将除bogus之外的所有行删除,然后去掉每行第二个冒号以后的所有内容,并添上字符串cvsroot, 改为如下格式: bogus:ND5$J8N9BW5DKV.nPdxfdsh:cvsroot 然后,删除掉刚刚在系统中添加的那个用户bogus: [root@terry root]# userdel -f bogus 好了,到这里,CVS服务器端就已经安装设置好了,这样你的CVS用户就只能用passwd中规定的用户来登陆你的CVS服务器了,要注意的是:本文介绍的添加用户的方
法适用于小数量的用户,如果是有大规模的开发人员,推荐采用连接LDAP或者数据库来进行用户的认证服务。 Fodera Core 7系统下构建CVS服务器的方法
安装完Fedora7后系统自己就安装好CVS软件了,无需在/etc/xinetd.d/下创建配置文件cvs了,默认的配置文件如下: # default: off # description: The CVS service can record the history of your source \ # files. CVS stores all the versions of a file in a single \ # file in a clever way that only stores the differences \ # between versions. service cvspserver { disable = yes port = 2401 socket_type = stream protocol = tcp wait = no user = root passenv = PATH server = /usr/bin/cvs env = HOME=/var/cvs server_args = -f --allow-root=/var/cvs pserver # bind = 127.0.0.1 } 前期工作: 默认是没有安装上xinetd服务,所以先安装xinetd服务#yum install xinetd 然后更改/etc/xinetd.d/cvs, 把disable=yes 改为 disable=no 重启xinetd服务, #service xinetd restart 创建用户和密码 首先要创建一个名为cvs的组和一个名为cvsroot的用户,以后要访问CVS服务的用户加入cvs这个组: [root@rocketcnvm ~]# groupadd cvs [root@rocketcnvm ~]#useradd -g cvs -s /sbin/nologin cvsroot [root@rocketcnvm ~]#chown -R cvsroot /home/cvsroot 接下来进行初始化: [root@rocketcnvm ~]#cvs -d /var/cvs init 这样在/var/cvs目录中就产生了CVSROOT目录,其中存放了一些配置文件,如config等,然后设置: [root@rocketcnvm ~]#chown -R cvsroot:cvs /var/cvs [root@rocketcnvm ~]#chmod -R ug+rwx /var/cvs [root@rocketcnvm ~]#chmod 644 /var/cvs/CVSROOT/config 为了CVS系统的安全,我们要修改/var/cvs/CVSROOT/config文件,将"#SystemAuth =no"的前而的注释号#去掉,即改为"SystemAuth =no",然后给开发者们逐一建立账号,
新建的不要分配用户目录,因为它将作为一个虚拟用户帐号来使用,具体命令如: [root@rocketcnvm ~]#useradd -g cvs -M rocketpro1 [root@rocketcnvm ~]#password rocketpro1 上面的命令就创建了一个并没有Home目录的用户rocketpro1,接着将系统的shadow文件复制到CVSROOT,并重命名为passwd: [root@rocketcnvm ~]#cp /etc/shadow /var/cvs/CVSROOT/passwd [root@rocketcnvm ~]#chmod 0644 /var/cvs/CVSROOT/passwd 然后修改passwd文件,将除刚才设定的可使用CVS的用户rocketpro1之外的所有行删除,然后去掉每行第二个冒号以后的所有内容,并添上字符串cvsroot, 改为如下格式: rocketpro1:$1$RO3GIeUt$6Sbq5uUqzusuK/R1Hua4k/:cvsroot 然后,删除掉刚刚在系统中添加的那个用户rocketpro1(如果要想让该用户也是操作系统的用户,也可以不删除该用户,如果只允许该用户访问CVS那么可以将该用户删除) [root@rocketcnvm ~]#userdel -f rocketpro1 使用CVS服务器 现在可以找一台windows机器,装个smartcvs,然后设置一下,填写好用户名和密码就