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环境变量)。
set cvsroot:pserver:administrator@1.2.3.4/TestRep
然后用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命令可以实现组权限的修改。
分享到:
相关推荐
在Windows环境下安装配置CVS服务器是一项基础的IT任务,尤其对于团队协作开发来说,CVS(Concurrent Versions System)是一种流行的源代码版本控制系统。以下将详细介绍如何在Windows上安装和配置CVSNT服务器。 ...
在Windows环境下,使用Eclipse3.4进行软件开发时,版本控制工具是非常重要的辅助软件,而CVS(Concurrent Versions System)就是其中一种经典的选择。本文将深入探讨Eclipse3.4与CVS的集成安装及配置过程,帮助...
本资料包主要围绕CVS服务器的搭建与配置展开,旨在帮助用户理解并掌握CVSNT和Wincvs在Windows环境下的应用。 一、CVS基本概念 CVS是一个开源的版本控制系统,它跟踪文件的修改历史,允许团队成员同时编辑同一份代码...
总之,Windows下搭建CVS服务器需要安装CVSNT,配置服务器端口、用户权限,设置环境变量,初始化仓库,以及启动和配置服务。了解这些步骤将帮助你有效地建立和管理代码版本控制。随着技术的演进,开发者应考虑是否...
下面将详细介绍如何在Linux服务器上设置CVS服务器,并在Windows客户端上安装并配置CVS客户端。 一、Linux服务器端CVS服务器的安装与配置 1. **安装CVS服务端** 在Linux系统中,通常使用包管理器来安装CVS。例如,...
本文将详细介绍在Windows环境下进行CVS服务器版本库迁移的具体操作流程。 #### 二、迁移前准备 在进行CVS服务器版本库迁移之前,需要完成以下准备工作: 1. **备份原有服务器**: 在迁移之前,务必对原有的CVS...
总之,配置Windows下的CVS需要理解CVS的基本原理,正确安装客户端,配置连接信息,以及熟悉相关命令。随着对CVS的深入理解和实践,开发者可以更好地利用版本控制系统进行高效的团队协作。记住,CVS的正确配置和使用...
本文将详细介绍如何在Linux环境下配置CVS服务器端,包括安装、初始化、配置服务以及启动和测试。 首先,CVS服务器端的安装。在Linux系统中,如RH Linux,通常预装了CVS。你可以通过执行`rpm -qa | grep cvs`命令来...
通过以上步骤,您已经成功地在Windows环境下配置了一个CVS服务器。CVS虽然相对老旧,但在某些场景下仍然有着不可替代的作用。通过使用CVS,团队成员可以更好地协同工作,提高代码的质量和稳定性。此外,了解并掌握...
【知识点详解】 ...在Linux(尤其是Redhat Linux)上配置CVS服务器涉及安装、配置服务、设置认证方式、管理用户权限以及初始化仓库等一系列步骤。理解这些步骤对于有效地管理和控制项目代码至关重要。
总结,CVS在Windows上的安装和配置虽然相比Unix系统可能稍显复杂,但借助详细的安装指南和丰富的文档资源,开发者完全可以顺利地在Windows环境中搭建起一个功能完备的CVS服务器。了解并掌握CVS的使用,对于多人协作...
Windows下安装CVS通常涉及到以下步骤: - 下载CVS的Windows发行版,如CVSNT,这是一个兼容Windows操作系统的CVS服务器和客户端实现。 - 运行安装程序,按照向导指示配置服务器和客户端组件。 - 配置CVS服务器,包括...
在本文档中,我们将探讨如何在Windows环境下配置CVSNT作为CVS服务器,并将其与Eclipse集成,以便于开发者更高效地进行版本控制和项目管理。 #### 二、CVSNT安装与配置 **1. 下载CVSNT** 首先,访问CVSNT官方网站...
本文将详细介绍如何在 Solaris 5.10 系统下安装和配置 CVS 1.1.3,并通过实际操作步骤帮助读者理解整个过程。 #### 二、安装前准备 1. **环境搭建**: - 确保已经安装了 Solaris 5.10 系统。 - 准备好需要安装 ...