zhyiwww
用平实的笔,记录编程路上的点点滴滴………
posts - 536,comments - 394,trackbacks - 0

1 、前言:

 

CVS 是版本控制的利器,目前在 Linux Windows 下都有不同版本;但是国内大多数应用介绍都是基于 Linux 等开放源代码的开放性软件组织,而且讲解的也不系统,让人摸不着头脑; Windows 下的 CVS 使用介绍更是了了无几。

本文是针对 Windows LAN 环境下使用 CVS 的经验介绍,一步一步的向您介绍如何配置和使用 CVS 的服务器端和客户端。同时,本文只使用到了 CVS 当中最基本的东西,还有很多更为高级的东西,本文暂不涉及。下面是本文的另一个连接映射,欢迎大家讨论使用,共同进步。

文章连接 http://www.kuihua.net/book/list.asp?id=66

论坛连接 http://www.kuihua.net/bbs/dispbbs.asp?boardID=1&;RootID=670&ID=670

2 、安装版本:

 

2.1 、服务器端 (CVSNT)

1. 本文使用的是 CVSNT-2.0.4 ,这是一个比较稳定的版本,不要使用最新的 CVSNT-2.1.1 ,本人在使用中发现有比较严重的 Bug

2. 下载连接 http://www.cvsnt.org 目前,它提供 2.0.6 2.1.1 版本的下载。

3. 上面连接还提供源代码,有兴趣的朋友还可以下载下来仔细研究:)。

4. 有心的朋友,仔细观察就会发现 http://www.cvsnt.org 并没有提供任何客户端的下载,那是因为 CVS.exe 既可以用于服务器端又可以用于客户端, WinCVS 是为了客户端使用的方便而定制的外壳。(关于这一点,本人未得到任何证实,只是本人在使用过程中的一种体会,欢迎大家讨论。)

2.2 、客户端 (WinCVS)

1. 本文使用的是 WinCVS-1.3b13 ,这应该是一个最新版本:),本人在使用过程中并没有发现有任何严重的 Bug

2. 下载连接 http://sourceforge.net/projects/cvsgui/

3. 此网站还提供丰富的 CVS 文档和相关源代码,以及多个 OS 下面的相关文档和代码;有收藏癖的朋友有福了:)。

4. WinCVS-1.3b13 使用的 CVSNT 的版本是 CVSNT-2.0.2 ,在与服务器端的 CVSNT-2.0.4 版本配合使用时,未发现任何不兼容或冲突现象。

5. 在本人的系统中用 cvs version 命令显示的结果如下:

Client: Concurrent Versions System (CVSNT) 2.0.2 (client/server)

Server: Concurrent Versions System (CVSNT) 2.0.4 (client/server)

3 、服务器端 (CVSNT) 的安装与配置:

3.1 、服务器端机器和环境配置:

1. 操作系统: Windows 2000 Professional SP2 中文版

2. 机器名称: Server

3. 机器地址: 192.168.0.6 ( 内部 IP)

4. 网络环境: 100 兆交换局域网

5. 硬盘分区格式: FAT32 NTFS 都可以。

6. 准备 2 CVSNT 的工作目录:

F:\KHRoot ( 存放自己源代码的根目录 )

F:\KHTemp ( 存放 CVS 出错信息的目录 )

7. 本机上存在有的用户列表:(由 NT 或本机的使用者创建)

Administrator ( 系统管理员 )

Jackey ( 普通用户 )

Goury ( 普通用户 )

Riolee ( 普通用户 )

3.2 、安装 CVSNT

1. 下载 CVSNT-2.0.4 ;使用 administrator 登陆到 Server 机器上。

2. 双击自解压的 exe 文件,选择 Full Install ,其它按照默认方式安装;安装完毕后可以在服务控制器中发现多了 2 个服务: cvsnt cvslocking

3. 发送 Service Control Panel 到桌面,形成快捷方式。

4. 安装程序会自动将 CVS 安装路径,设置到系统的 Path 环境变量当中,因此使用者可以在控制台 (cmd) 中任意位置执行 cvs.exe ,这一点对下面的配置很重要!!

3.3 、配置 CVSNT 服务器:

1. 双击 Service Control Panel 快捷方式,在 Service Status 页面,确认 2 个服务正常和稳定运行。

2. 选择 Repository 页面,点按 Add 按钮,选择已经准备好的 F:\KHRoot 这个目录,确认, OK Yes ,这时会在 F:\KHRoot 下面建立 CVSRoot 目录,这是 CVS 默认的管理目录(默认模块)。如果报错,那是系统 Path 路径未设置正确。

3. 选择 Advanced 页面,勾上 Use local users for pserver ... ,( Why? I don t know!J , Temporary 栏选择已经准备好的 F:\KHTemp ,确认, OK

4. 点按【应用】按钮,确认,退出, OK ,搞定!!

3.4 、小结:

 

1. 至此, CVSNT 服务器端基本配置完毕,下面进行 WinCVS 的使用和管理。

2. 由于 CVS 支持远程管理,也就是客户端与服务器集成的特性,因此,我们将添加用户、权限控制、模块维护等所有的管理工作都放到远端 (WinCVS) 进行管理,服务器端这时可以 Ctrl+Atl+Del 进入锁定状态了,下面的所有工作都交给远端的 WinCVS 来进行管理。

4 客户端 (WinCVS) 的安装与配置:

4.1 客户端机器和环境配置:

 

1. 操作系统: Windows 2000 Professional SP2 中文版

2. 机器名称: YCW2000

3. 机器地址: 192.168.0.2 ( 内部 IP)

4. 网络环境: 100 兆交换局域网,可以直接访问到 Server

5. 硬盘分区格式: FAT32 NTFS 都可以。

4.2 安装 WinCVS

1. 下载 WinCVS 1.3b13 ,全部按照默认安装就可以了。

2. 启动 WinCVS ,开始使用。特别注意:以下的所有操作都是在 YCW2000(192.168.0.2) 这台机器上远程完成的,此时的 Server(192.168.0.6) 主机已经进入了锁定状态。

5 管理员使用 WinCVS 进行远程管理:

5.1 配置 WinCVS 成管理员状态:

1. 准备管理员工作目录: ( YCW2000 机器上 )

E:\CVSClient\Admin ( 管理员工作目录 )

E:\CVSTemp (WinCVS 临时目录 )

2. 第一次启动 WinCVS 时会自动弹出 Preferences 配置页面,也可以通过 Admin=>Preference 菜单进入;第一次使用时需要配置如下的 3 个页面:

General 页面设置:

注:按照图示方式输入即可,需要注意的是 Path 部分的格式是 Unix 路径格式,它指的是 CVSNT 端设置的工作根目录。

CVS 页面设置: 注: Home 路径是设置密码等文件的存放位置,必须指定,否则在登陆时, WinCVS 也要弹出设置框。这个 Home 路径需要 Python.exe 这个外挂程序才有效。这里选择已经准备好的路径: E\CVSTemp

WinCVS 页面设置:

注:此页面设置 WinCVS 的外挂编辑程序,通常使用 UltraEdit 比较方便。

3. 设置管理员的工作路径:可以点按图标 ,或 View=>Browse Location=>Change …菜单进行设置,选择已经准备好的路径: E:\CVSClient\Admin ,确认, OK ,这时此目录将出现在 WinCVS 的左边导航栏【 Workspace 】内。

4. 至此, WinCVS 就被配置成了远程的管理员使用状态,下面进行一般管理员需要的基本操作演练。演练的内容为: Administrator 需要管理 Jackey Goury Riolee 三个用户,分别为这 3 个用户建立工作目录,每个人只能访问自己的工作目录。同时,只有 Administrator 能够进行权限分配,其它人没有任何管理权限。

5.2 管理员进行管理演练:

1. 登陆远程 CVSNT

  ◇ 选择 Admin=>Login 菜单,默认设置, OK

  ◇ 弹出密码输入框,确认, OK 。注意观察输出框【 OutPut 】的返回结果。

2. Checkout 默认模块:( CVSRoot 管理模块)

  ◇ 在左边导航栏【 Workspace 】内,选择【 Admin 】点按右键,选择【 Checkout

   modules …】,在【 Checkout settings 】中输入 CVSRoot ,确定, OK 。如下图:

  ◇ 如果成功的话,会在【 Admin 】栏下增加一个【 CVSRoot 】目录。表示您已经将【

  CVSRoot 】这个管理模块下载到本地了。

3. CVS 中目录权限介绍:

 

系统支持的目录权限列表:

r ( 读取权限 )

w ( 写入权限 )

c ( 创建和删除权限 )

n ( 没有任何权限 )

默认情况下,任何用户都拥有任何目录的所有权限。

任何情况下只有目录的拥有者和 Administrator 才有权力更改目录的使用权限。下面将会介绍如何修改目录权限和目录的拥有者。

4. 修改 CVSRoot 的权限:只让 Administrator 拥有 rcw 三种全部权限。

选中刚刚下载的【 CVSRoot 】模块,【 Ctrl+L 】或 Admin=>Command Line …,弹出 Command Line Settings 对话框,直接执行 CVS 命令。

取消所有用户的默认权限: cvs chacl default:n 回车, OK ,完成。

设置 Administrator 拥有所有权限: cvs chacl administrator:rcw 回车, OK ,完成。

更改【 CVSRoot 】的拥有者: cvs chown administrator 回车, OK ,完成。

查看【 CVSRoot 】的权限状态: cvs lsacl 回车, OK ,在【 Output 】中显示:

Owner: administrator

default:n

administrator:rwc

◇【 CVSRoot 】的权限配置完毕。

5. 编写代码库中的模块文件,便于多用户下载方便。

l 需要自己编写的模块文件格式如下: ( 实现基本功能 )

【模块一的描述】【 n 个空格或参数】【相对目录路径一 (DirA)

【模块二的描述】【 n 个空格或参数】【相对目录路径二 (DirB)

……

【模块 X 的描述】【 n 个空格或参数】【相对目录路径 X(DirX)

◇【描述信息】与【相对路径】在字面上不一致时,需要使用 -a 参数。

【相对路径】指的是 CVS 会自动带上根路径,这里是 F:\KHRoot ,所以上面例子的完整路径为: F:\KHRoot\DirA

了解了模块文件结构,现在来实际操作一把:双击【 CVSRoot 】模块下的 modules 文件,用 UltraEdit 打开进行编辑。

Jackey Goury Riolee 三个用户分配工作目录和完成其它模块描述。

CVSRoot CVSRoot

Jackey 工作目录 -a Jackey

Goury 工作目录 -a Goury

Riolee 工作目录 -a Riolee

编辑完毕,存盘。回到 WinCVS ,选中 modules 这个文件【 Ctlr+M 】或右键选择【 Commit selection …】,默认设置,【确认】, OK ,完成上传。

6 . 为三个用户分别上传工作目录:

YCW2000 机器上的 E:\CVSClient\Admin 分别建立三个目录分别名为: Jackey Goury Riolee ,作为临时交换目录。

在新创建的每个目录中用 UltraEdit 或拷贝一个 Readme.txt 作为引子文件!!:)

然后,回到 WinCVS ,在【 Workspace 】栏的【 Admin 】目录下形成如下的目录结构:

分别选中 Goury Jackey Riolee ,右键,点按【 Import Module 】,选择【 Continue 】,其它全部使用默认值,【确定】, OK ,完成上传工作。

仔细观察【 Output 】窗口,确认都成功上传了。

转移到系统的 Explore 程序中,删除 E:\CVSClient\Admin 目录下的 Jackey Goury Riolee 三个目录。然后回到 WinCVS 当中。 ( 一定要删除!!!: )

至此,就完成了工作目录的上传工作。

7. Checkout 】下载 3 个用户的工作目录到【 Admin 】目录下:

在【 Workspace 】栏选择【 Admin 】目录,右键,点按【 Checkout Module …】 , 如下图:

选择【…】,得到 CVSNT 上最新的模块配置情况,弹出如下的信息框:

这个结构图就是刚才在 modules 当中编写的模块文件格式信息。选择【 Jackey 工作目录】,下载到 YCW2000 机器的 E:\CVSClient\Admin 目录下。

按照以上操作,依次分别下载【 Goury 工作目录】和【 Riolee 工作目录】。形成如下状态:

 

8. 为三个用户分别设置各自目录的访问权限。(只有自己才能访问自己的工作目录)

选中【 Goury 】目录,【 Ctrl+L 】或 Admin=>Command Line …,弹出 Command Line Settings 对话框,直接执行 CVS 命令。

取消所有用户的默认权限: cvs chacl default:n 回车, OK ,完成。

设置 Goury 拥有所有权限: cvs chacl goury:rcw 回车, OK ,完成。

查看【 CVSRoot 】的权限状态: cvs lsacl 回车, OK ,在【 Output 】中显示:

Owner: administrator

default:n

goury:rwc

按照以上的方法依次分别设置【 Jackey 】与【 Riolee 】的工作目录访问权限。

至此,完成了 3 个用户的目录权限分配。注意,虽然 Administrator 也没有权力再次【 Checkout 】那 3 个用户的工作目录,但是它是这些目录的拥有者又是 Administrator ,因此,只有它才有权力更改这些目录的访问权限。

9. CVSNT 系统中的用户管理原则:

 

CVSNT 的用户与本机 ( 这里是 Server 机器 ) 上的 NT 用户是相关联的,即 CVSNT 用的全是本机上存在的已有用户,因此在默认情况下可以不用设置任何用户名,只要使用本机上已经存在的用户名就可以用 WinCVS 进行登陆。

只有用 Administrator 身份登陆到 CVSNT 系统中,才有权力进行新用户的创建和删除。

使用 CVS 创建的新用户,必须与服务器端机器上的 NT 用户相绑定,才能生效;因此,这个新用户实际上是绑定它的 NT 用户的一个替身,在 CVS 系统中称为“别名”。

一个 NT 用户可以有多个‘替身’或‘别名’,充当多个 CVS 用户。

10. WinCVS 进行新用户的添加和删除。 ( 确保使用 Administrator 登陆 )

Ctrl+L 】或 Admin=>Command Line …,弹出 Command Line Settings 对话框,直接执行 CVS 命令。

添加新用户【 Killer 】: cvs passwd -a Killer 回车,设置密码, OK ,完成。

绑定【 Killer 】到【 Jackey 】: cvs passwd -r Jackey Killer 回车,设置密码, OK ,完成。

两次输入的密码可以不同,但以第二次输入的密码为最终密码。

删除用户【 Killer 】: cvs passwd -X Killer 回车, OK ,完成。

其它特殊的功能查看 passwd 命令的帮助。

 

11. 使用完毕后,一定要【 Logout 】,因为 WinCVS 退出时并不会自动注销自己在远端的会话;这样做是为了防止其它人接着打开 WinCVS ,不用登陆就可以完成你能进行的所有操作了。

6 WinCVS 中常见的特殊操作:

6.1 如何删除下载的文件或目录:

1. 选中下载的某个或多个文件,执行【 Remove 】命令。

2. 再次选中这些文件,执行【 Commit 】命令就完成了删除文件的操作。

3. 本质上 CVS 是不会删除任何文件和目录的,即使是执行了以上操作,删除了某些文件,远端 CVS 实际执行的是将提交删除的文件放到了一个叫【 Attic 】的目录下,因此,这些被删除的文件是可以通过一定的方法恢复的。

6.2 如何恢复已经删除的文件或目录:

1. 在执行了【 Remove 】命令之后恢复文件。

Ctrl+L 】直接输入命令 cvs add xxxxx ,或执行【 Add Selection 】界面操作。

这样就可以直接恢复还未提交的删除文件。

2. 在执行了【 Commit 】命令之后恢复文件。

只能用【 Ctrl+L 】直接输入命令 cvs add xxxxx ,这时会得到一个空的文件。

选中这个空文件,执行【 Update 】操作,得到这个文件的实体。

再次选中这个文件,执行【 Commit 】操作,得到这个文件最新版本。

3. 由于 CVS 系统中本质上不会删除任何目录,因此,谈不上对目录的恢复,但是 CVS 系统默认情况下是要在用户本机上(如: YCW2000 )要删除空目录,因此,可以用如下方法得到已被删除的空目录: cvs checkout -p xxx ,也可以在 Admin=>Preference 的【 Globals 】页面进行设置。

4. 可见, CVS 系统能够保证:只要上传到服务器的文件,无论你怎么在远程进行如何的操作,正常的或非正常的操作,都可以用 Administrator 登陆上去,通过以上的方法找到丢失的文件。除非用户进入到远端服务器,将文件手动删除,那就没办法了:)

6.3 如何得到以前版本的文件:

 

1. 有时我们需要得到以前版本的文件,而 WinCVS 默认方式只传递最新的版本。

2. 选中某个文件,【 Ctrl+G 】或右键,点按【 Graph selection …】,使用默认设置,就可以得到该文件所以版本的图形结构描述。

3. 选中一个版本,右键,点按【 Retrieve revision 】,就可以得到相应的老版本文件。当然也可以得到最新版本的文件:)

6.4 有时 WinCVS 会变得异常缓慢,怎么办?

 

1. 确认安装了 WinCVS 的机器上没有安装 CVSNT 服务器端,因为它们使用的版本有可能不一致。

2. 只安装了 WinCVS ,但以前安装过其它版本的 WinCVS ,怎么办?

3. 先卸载所有的 WinCVS 系统,删除安装目录下的残留文件。

4. 打开注册表编辑器,全程查找 cvs 关键字,找到一个删除一个,一直到找不到为止!!:)

5. 重新安装 WinCVS ,这个问题基本上就可以解决了,我就是这样解决,不晓得你那里如何?:)

7 其它说明:

 

1. 本文的重点在介绍如何让使用者搭建 CVSNT+WinCVS 这个系统,因此重点介绍了管理员的常用操作,至于一般用户使用到的操作,相对比较简单和单一,使用 WinCVS 的次数多了,很快就会熟悉它了。

2. 这篇文档只是窥探了 CVS 的一点皮毛而已, CVS 当中还有很多高级的用法,以及上百个命令,还有很多新鲜的管理源代码的方法,比如: tag branch 等模式;因此,热烈欢迎大家积极探索,不断共享,不断进步。。。。。。。。

3. 另外, cvs.html 这个帮助,里面的信息也很丰富,但是,很多地方写得不够清楚,需要不断猜测和实践才能知道怎么回事,本文的很多经验都是看这个帮助,如此这般,采用这个笨办法得到的。。。。。。

4. 最后,祝愿看到此文的人,得到的帮助、提高等好处大于或等于浪费的时间、反而退步等坏处!!

From: http://www.kuihua.net/wendang/win1.asp



|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2006-06-02 09:25 zhyiwww 阅读(956) 评论(2)  编辑  收藏 所属分类: 配置管理

FeedBack:
# re: WINCVS与CVSNT简明使用手则(转载)
2010-05-29 11:51 | tt
我在断网状态下没法进行cvs操作!请问楼主怎么解决?  回复  更多评论
  
# re: WINCVS与CVSNT简明使用手则(转载)
2010-05-29 11:52 | tt
据我所知cvs服务器是我放在公网上才能连接的。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: