<!----><!----><!---->
<!---->
CVS
是目前最常用的版本控制和软件配置系统。其开源性在其普及的过程中功不可没,然而正因为开源造成了其易用性较差。往往一个功能需要通过几个看似不相干的操作配合才能进行。Windows
下CVS
的多帐户配置正是这样一个相当重要的,但很不好操作的功能。几个难点如下:
- CVS
源自Unix
系统,其Windows
的移植版并没有服务器功能。在Windows
下一般采用安装CVSNT
这个软件来建立CVS Repository
,但CVSNT
的操作方法和原始的CVS
略微不同。
- CVS
本身是命令行形式,其配置过程比较繁杂。
- CVS
的多帐户配置需要手动修改Repository
的CVSROOT
文件夹里的文件,缺乏统一的界面。
在安装了CVSNT
服务器之后,默认的用户就是建立Repository
的Windows
系统的登陆帐户,但在多人开发的时候,肯定没人希望大家都使用同一个名字来Commit
;更重要的是,我们可能需要配置开发人员的权限,例如限制某些人只能看程序,而某些人可以Commit
程序,某些人可以添加新的Module
。以下是详细的步骤,环境是CVSNT 2.5.03 (Build 2151) + TortoiseCVS 1.8.25
:
1.
使用CVSNT
建立一个Repository
。假设初始使用Windows
的管理员administrator
密码登陆,Repository
使用Pserver
协议,IP
是1.2.3.4
,端口号是2401
,Repository
名称是/TestRep
,密码是123
。这时的administrator
也是此Repository
的管理员。
2.
为了进行多用户配置,必须修改Repository
的CVSROOT
目录的几个文件。首先在客户端将:pserver:administrator@1.2.3.4/TestRep
设为CVSROOT
环境变量(请注意区分CVSROOT
目录和CVSROOT
环境变量)。然后用administrator
登陆到CVS
,最后Check Out
出此CVSROOT
目录。命令如下所示:
cvs login
//
输入密码123
cvs co CVSROOT
3.
在服务器端为Windows
添加一个专门用于CVS
操作的Windows
帐户。所有的CVS
帐户都要映射到这个Windows
帐户上进行实际的操作。虽然很多资料并没有提到需要建立Windows
帐户,但我在实验中发现没有这种帐户,CVS
在后边执行任何操作时都会报告没有此帐户的错误。假如这个新的帐户叫做cvsuser
。使用Windows
命令
net user cvsuser cvsuserpassword /Add
可以添加此帐户。在添加完成之后,一定要记得将/TestRep
在服务器上的实际文件夹的权限里添加cvsuser
的读写权限,否则到最后任何映射到cvsuser
的CVS
帐户都会因为没有写权限无法进行正常的commit
操作。首先在服务器上的资源管理器里的“
工具”
菜单里找到“
文件夹选项”
,在随后出现的“
查看”
选项卡里找到“
使用简单文件夹共享”
的项目,取消掉前面的勾,单击确定。然后右击/TestRep
所在文件夹,单击“
属性”
。在随后打开的对话框里可以看到“
安全”
选项卡。我们需要在这里添加cvsuser
的读写权限。
4.
为CVS
添加自己的帐户。通过使用命令cvs passwd
我们可以添加任意多个CVS
帐户(当然,只是针对当前的Repository
)。所有的帐户信息会被保存在CVSROOT
目录的passwd
文件当中。然而这个文件是不能Check Out
出来的,只能在服务器那里看到它,并且其保存的密码信息是被加过密的。我们可以添加cvsadmin
,user1
,user2
,anonymous
等用户。例如添加cvsadmin
时的命令是:
cvs passwd -a -r cvsuser cvsadmin
//
输入cvsadmin
的密码
//
再次输入cvsadmin
的密码
这样就新添了cvsadmin
帐户,并将其映射到Windows
帐户cvsuser
上(-a
表示添加一个账户,-r
表示影射到操作系统的帐户中。我期望将cvsadmin
作为以后/TestRep
的管理员。这一点十分重要,如果这时候不设置的话,再将CVS
改为“
仅使用CVS
帐户校验模式”
之后就再也没有机会添加管理员了(因为只有管理员可以看得到和操作CVSROOT
目录)。
5.
设定cvsadmin
为CVS
管理员。在客户端的CVSROOT
目录下新添一个名为admin
的文件。在里面将每一个想要升为管理员的CVS
帐户的帐户名写到文件中,每行一个帐户名。当然admin
文件只有放到服务器,cvsadmin
的升迁才能生效。但是,仅仅是这么将admin
文件提交上去是不能起作用的。在提交它之前,必须将admin
的信息添加到checkoutlist
文件中。checkoutlist
的格式在文件中有介绍,是“
空格 文件名 空格 出错信息
回车符”
。我们在里面添加一条记录:
admin adminerror
特别注意admin
前面一定要留一个空格。
6.
当新的CVS
管理员和帐户信息都准备好后,就要将/TestRep
的帐户校验模式从“
操作系统集成校验模式”
修改为“
仅使用CVS
帐户校验”
模式。这么做可以避免为了在CVS
中使用多用户时需要操作Windows
帐户的麻烦。这个设置的地方在CVSROOT
目录中的config
文件。打开客户端的config
文件,将里面的#SystemAuth=yes
改为SystemAuth=no
(注意将#
删除后,SystemAuth
前不能有空格)。修改后保存config
文件。
7.
提交CVSROOT
里的所有更新到服务器,我们的设置就生效了。命令如下所示:
cd CVSROOT
cvs add -m "" admin
cvs commit -m ""
不过在提交之前,你也许想先把CVSROOT
的owner
从原来的administrator
修改为cvsadmin
。使用命令cvs chown
可以做到这一点。在提交了CVSROOT
目录后,校验模式就立刻改变了,cvsadmin
也同时开始生效。这时,用之前的administrator
就无法使用CVS
了。我们改用cvsadmin
帐户重新登陆,继续下面的操作。
8.
修改读写权限。CVS
有两种读写权限的设置方法,一是粗粒度的,一是细粒度的。只有CVS
管理员才能进行访问权限的修改。粗粒度的方法是在CVSROOT
中添加readers
或者writers
文件来实现。在readers
里添加的任何一个帐户对当前库只拥有读取权限,添加格式是每行一个帐户名。例如,我们在客户端的CVSROOT
目录里添加readers
文件,将之前的一个新建帐户anonymous
放到里面,然后commit
这个readers
文件到服务器。anonymous
就不能进行commit
了。实际的测试结果是在使用anonymous
登陆之后执行commit
指令,系统会报告正常执行完毕。但实际上,没有任何东西被commit
,暴露了CVS
在人机界面上的不完善。writers
文件的操作readers
完全一样。如果一个帐户名被同时写到两个文件里,此帐户只有只读权限。细粒度的方法是使用chacl
命令。例如/TestRep
里有3
个工程,project1
、project2
、project3
。使用命令:
cvs chacl -u user1 -a none -d project1,project2,project3
cvs chacl -u user1 -a all -d project1
cvs chacl -u user1 -a read,write -d project2
cvs chacl -u user1 -a read -d project3
可以让user1
拥有对project1
目录的完全控制权,对project2
目录的读写权,和对project3
目录的只读权。第一条命令首先删除user1
的所有权限,在随后的3
条命令里分别设置了3
个不同目录权限。
9.
使用帐户组来组织帐户。在客户端的CVSROOT
目录下添加一个叫group
的文件。此文件的格式是:
组名1:
用户名1,
用户名2,
用户名3,……
组名2:
用户名5,
用户名7,……
……
修改完group
文件后commit
它,然后通过chacl
命令可以实现组权限的修改。
分享到:
相关推荐
【CVS配置详解】 CVS(Concurrent Versions System)是一种广泛使用的版本控制系统,它允许团队成员协同工作并跟踪代码的变化。在Windows环境下,通常使用CVSNT作为CVS的实现,因为它提供了对Windows系统的良好支持...
### CVS配置详解 #### 一、CVS简介与配置基础 CVS(Concurrent Versions System)是一种源代码版本控制系统,广泛应用于软件开发过程中对代码版本的管理。它可以帮助团队成员协同工作,确保代码的一致性和可追溯性...
在Eclipse的CVS配置中,勾选“CVSNT Clients”下的“Respond as cvs1.11.2 to version request”选项。这是为了确保Eclipse与CVSNT之间的兼容性,因为不同版本的CVS可能存在通信协议的差异。 5. **连接到CVS仓库**...
总的来说,CVS配置与使用是软件开发中的重要环节,它有助于团队成员间的协同工作,提高代码管理效率,避免版本冲突,同时提供了代码历史追踪和恢复旧版本的能力。正确配置和熟练使用CVS,能够极大地提升开发效率和...
### CVS配置管理工具使用手册详解 #### 一、CVS简介 CVS(Concurrent Versions System),即并发版本系统,是一种广泛使用的开源版本控制系统。它主要用于软件开发过程中的源代码管理,同时也适用于其他类型的文件...
《CVS配置管理 从入门到精通》是针对软件开发团队协作中不可或缺的版本控制工具——CVS(Concurrent Versions System)的详细教程。CVS作为一个C/S架构的系统,其核心功能在于协助多用户对同一份代码或文档进行协同...
【Myeclipse与CVS配置】是关于在Myeclipse集成开发环境中配置和使用CVS(Concurrent Versions System,协同版本系统)的教程。CVS是一个开源的版本控制系统,允许开发者对源代码进行版本管理,便于团队协作和项目...
CVS 配置apiCVS 配置apiCVS 配置apiCVS 配置api
下面将详细介绍CVS和SVN的配置学习要点。 1. CVS简介: CVS是一种早期的版本控制系统,它基于客户端-服务器架构,允许开发者在不同的计算机上工作并同步更改。CVS的核心特性包括版本追踪、分支与合并、冲突解决...
MyEclipse CVS配置是如何的呢?具体的实施是什么步骤,其中需要注意的又是什么呢?这篇文章我们就向你介绍MyEclipse CVS配置的详细情况。
CVS 配置方法讲解 CVS(Concurrent Versions System)是一种版本控制系统,帮助开发人员管理项目文件版本,确保项目成员之间的协作发展。下面是 CVS 配置方法的详细讲解。 服务器端配置 服务器端使用 Linux ...
3. **配置**:在开始转换之前,你需要创建一个配置文件,其中包含CVS和SVN仓库的信息,以及转换规则。配置文件通常用Python编写,允许高度自定义。 **三、使用cvs2svn进行转换** 1. **准备CVS仓库**:确保你有CVS...
【myeclipse CVS 配置】是指在MyEclipse集成开发环境中配置CVS(Concurrent Version System)的过程。CVS是一种版本控制系统,用于管理和跟踪软件项目中的文件版本,尤其适用于多用户协同开发的场景。 在MyEclipse...
【CVS安装配置】 CVS(Concurrent Versions System)是一种版本控制系统,用于管理软件开发过程中不同版本的源代码。在多人协作的项目中,CVS能够帮助开发者追踪代码的修改历史,合并不同人的更改,并确保团队成员...
【CVS配置管理】是一种版本控制系统,用于管理软件开发中的源代码和其他文件,确保多人协作时的文件同步和冲突解决。CVS(Concurrent Versions System)的核心思想是在服务器上设立一个中央仓库,开发者从仓库中检出...
### CVS配置与使用详解 CVS(Concurrent Versions System)是一种源代码版本控制系统,主要用于软件开发过程中的版本管理和协作。本文将基于“CVS配置.doc”文档内容,深入解析CVS的安装、配置及在Eclipse环境下的...