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) 编辑 收藏 所属分类:
配置管理