`
srj2903
  • 浏览: 106452 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CVS配置 [转]

阅读更多

<!----><!----><!----> <!---->

CVS 是目前最常用的版本控制和软件配置系统。其开源性在其普及的过程中功不可没,然而正因为开源造成了其易用性较差。往往一个功能需要通过几个看似不相干的操作配合才能进行。WindowsCVS 的多帐户配置正是这样一个相当重要的,但很不好操作的功能。几个难点如下:

  1. CVS 源自Unix 系统,其Windows 的移植版并没有服务器功能。在Windows 下一般采用安装CVSNT 这个软件来建立CVS Repository ,但CVSNT 的操作方法和原始的CVS 略微不同。
  2. CVS 本身是命令行形式,其配置过程比较繁杂。
  3. CVS 的多帐户配置需要手动修改RepositoryCVSROOT 文件夹里的文件,缺乏统一的界面。

在安装了CVSNT 服务器之后,默认的用户就是建立RepositoryWindows 系统的登陆帐户,但在多人开发的时候,肯定没人希望大家都使用同一个名字来Commit ;更重要的是,我们可能需要配置开发人员的权限,例如限制某些人只能看程序,而某些人可以Commit 程序,某些人可以添加新的Module 。以下是详细的步骤,环境是CVSNT 2.5.03 (Build 2151) + TortoiseCVS 1.8.25

1. 使用CVSNT 建立一个Repository 。假设初始使用Windows 的管理员administrator 密码登陆,Repository 使用Pserver 协议,IP1.2.3.4 ,端口号是2401Repository 名称是/TestRep ,密码是123 。这时的administrator 也是此Repository 的管理员。

2. 为了进行多用户配置,必须修改RepositoryCVSROOT 目录的几个文件。首先在客户端将: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 的读写权限,否则到最后任何映射到cvsuserCVS 帐户都会因为没有写权限无法进行正常的commit 操作。首先在服务器上的资源管理器里的 工具 菜单里找到 文件夹选项 ,在随后出现的 查看 选项卡里找到 使用简单文件夹共享 的项目,取消掉前面的勾,单击确定。然后右击/TestRep 所在文件夹,单击 属性 。在随后打开的对话框里可以看到 安全 选项卡。我们需要在这里添加cvsuser 的读写权限。

4. CVS 添加自己的帐户。通过使用命令cvs passwd 我们可以添加任意多个CVS 帐户(当然,只是针对当前的Repository )。所有的帐户信息会被保存在CVSROOT 目录的passwd 文件当中。然而这个文件是不能Check Out 出来的,只能在服务器那里看到它,并且其保存的密码信息是被加过密的。我们可以添加cvsadminuser1user2anonymous 等用户。例如添加cvsadmin 时的命令是:

cvs passwd -a -r cvsuser cvsadmin
//
输入cvsadmin 的密码
//
再次输入cvsadmin 的密码

这样就新添了cvsadmin 帐户,并将其映射到Windows 帐户cvsuser(-a 表示添加一个账户,-r 表示影射到操作系统的帐户中。我期望将cvsadmin 作为以后/TestRep 的管理员。这一点十分重要,如果这时候不设置的话,再将CVS 改为 仅使用CVS 帐户校验模式 之后就再也没有机会添加管理员了(因为只有管理员可以看得到和操作CVSROOT 目录)。

5. 设定cvsadminCVS 管理员。在客户端的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 ""

不过在提交之前,你也许想先把CVSROOTowner 从原来的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 个工程,project1project2project3 。使用命令:

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的配置

    【CVS配置详解】 CVS(Concurrent Versions System)是一种广泛使用的版本控制系统,它允许团队成员协同工作并跟踪代码的变化。在Windows环境下,通常使用CVSNT作为CVS的实现,因为它提供了对Windows系统的良好支持...

    cvs 配置说明非常详细的配置说明

    ### CVS配置详解 #### 一、CVS简介与配置基础 CVS(Concurrent Versions System)是一种源代码版本控制系统,广泛应用于软件开发过程中对代码版本的管理。它可以帮助团队成员协同工作,确保代码的一致性和可追溯性...

    Eclipse+cvs配置说明

    在Eclipse的CVS配置中,勾选“CVSNT Clients”下的“Respond as cvs1.11.2 to version request”选项。这是为了确保Eclipse与CVSNT之间的兼容性,因为不同版本的CVS可能存在通信协议的差异。 5. **连接到CVS仓库**...

    CVS配置与使用

    总的来说,CVS配置与使用是软件开发中的重要环节,它有助于团队成员间的协同工作,提高代码管理效率,避免版本冲突,同时提供了代码历史追踪和恢复旧版本的能力。正确配置和熟练使用CVS,能够极大地提升开发效率和...

    CVS配置管理工具使用手册

    ### CVS配置管理工具使用手册详解 #### 一、CVS简介 CVS(Concurrent Versions System),即并发版本系统,是一种广泛使用的开源版本控制系统。它主要用于软件开发过程中的源代码管理,同时也适用于其他类型的文件...

    CVS配置管理 从入门到精通

    《CVS配置管理 从入门到精通》是针对软件开发团队协作中不可或缺的版本控制工具——CVS(Concurrent Versions System)的详细教程。CVS作为一个C/S架构的系统,其核心功能在于协助多用户对同一份代码或文档进行协同...

    Myeclipse与CVS配置

    【Myeclipse与CVS配置】是关于在Myeclipse集成开发环境中配置和使用CVS(Concurrent Versions System,协同版本系统)的教程。CVS是一个开源的版本控制系统,允许开发者对源代码进行版本管理,便于团队协作和项目...

    CVS 配置api cvs.chm

    CVS 配置apiCVS 配置apiCVS 配置apiCVS 配置api

    CVS和SVN配置学习

    下面将详细介绍CVS和SVN的配置学习要点。 1. CVS简介: CVS是一种早期的版本控制系统,它基于客户端-服务器架构,允许开发者在不同的计算机上工作并同步更改。CVS的核心特性包括版本追踪、分支与合并、冲突解决...

    MyEclipse CVS配置详解

    MyEclipse CVS配置是如何的呢?具体的实施是什么步骤,其中需要注意的又是什么呢?这篇文章我们就向你介绍MyEclipse CVS配置的详细情况。

    cvs配置方法讲解

    CVS 配置方法讲解 CVS(Concurrent Versions System)是一种版本控制系统,帮助开发人员管理项目文件版本,确保项目成员之间的协作发展。下面是 CVS 配置方法的详细讲解。 服务器端配置 服务器端使用 Linux ...

    将cvs转换为svn库的工具cvs2svn

    3. **配置**:在开始转换之前,你需要创建一个配置文件,其中包含CVS和SVN仓库的信息,以及转换规则。配置文件通常用Python编写,允许高度自定义。 **三、使用cvs2svn进行转换** 1. **准备CVS仓库**:确保你有CVS...

    myeclipse CVS 配置

    【myeclipse CVS 配置】是指在MyEclipse集成开发环境中配置CVS(Concurrent Version System)的过程。CVS是一种版本控制系统,用于管理和跟踪软件项目中的文件版本,尤其适用于多用户协同开发的场景。 在MyEclipse...

    CVS 安装 配置

    【CVS安装配置】 CVS(Concurrent Versions System)是一种版本控制系统,用于管理软件开发过程中不同版本的源代码。在多人协作的项目中,CVS能够帮助开发者追踪代码的修改历史,合并不同人的更改,并确保团队成员...

    CVS配置管理,建议下载查看

    【CVS配置管理】是一种版本控制系统,用于管理软件开发中的源代码和其他文件,确保多人协作时的文件同步和冲突解决。CVS(Concurrent Versions System)的核心思想是在服务器上设立一个中央仓库,开发者从仓库中检出...

    CVS配置.doc

    ### CVS配置与使用详解 CVS(Concurrent Versions System)是一种源代码版本控制系统,主要用于软件开发过程中的版本管理和协作。本文将基于“CVS配置.doc”文档内容,深入解析CVS的安装、配置及在Eclipse环境下的...

Global site tag (gtag.js) - Google Analytics