- 浏览: 186361 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhulin0504:
必须赞
浅谈Java内部类的四个应用场景 -
zhmy0129:
想打印 表起来。
软件工程师的7年总结 -
RonQi:
lionkingzw 写道pop1030123 写道wly71 ...
java调用python -
linchixiong:
有种茅塞顿开的感觉,感谢啊~~
浅谈Java内部类的四个应用场景 -
hnzhoujunmei:
为什么没有完整的源码啊?
用 Java 通过串口发送手机短信
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
CVS 在 Windows 下的应用系列:
在 NTFS 中为 CVSNT 增加精确权限控制的方法
作者:CnPack 开发组 与月共舞
主页:http://www.cnvcl.org
邮件:yygw@yygw.net
日期:2003-11-17
很多使用 CVSNT 的朋友常常会抱怨 CVSNT 没有提供模块级的读写权限控制,通过 passwd 文件虽然可以限制只读用户,但无法对各个模块分别进行控制。
有人尝试直接在 NTFS 中指定模块访问权限,这样虽然可以限制用户提交,但同时也限制了用户取出模块。
事实上,通过简单的配置,完全可以在 CVSNT 中实现精确的读写权限控制,方法如下:
安装完 CVSNT 后,分别在 NTFS 分区上建立两个目录,如:
(注:此处及以下的设置内容都可以根据需要自己调整,只用于说明方法。)
* C:/CVSHome CVS Repository 仓库主目录
* C:/CVSLock CVS 访问加锁目录
创建本地用户组及用户:
* 用户组 CVSReaders,拥有读权限的用户组
* 用户组 CVSWriters,只拥有写权限的用户组
* 用户 cvsreader,只读用户,属于 CVSReaders 组。
* 用户 cvswriter,可写用户,属性 CVSWriters 组。
设置 CVS 相关目录访问权限:
* 设置 Windows 临时目录权限,允许 CVSReader、CVSWriter 组读写。
CVSNT 运行时会用到临时目录,如果用户没有写权限,将无法正常工作。
* 设置 C:/CVSLock 权限,允许 CVSReader、CVSWriter 组读写。
用户在访问 CVS 时,需要创建临时的加锁文件,此处分配写权限。
* 设置 C:/CVSHome 权限(带继承),允许 CVSReader 读,CVSWriter 写。
到 CVSNT 控制面板中创建并初始化 CVS 仓库:
* 打开 CVSNT 控制面板。
* 在 Repositories 页面设置 Repository Prefix 路径为 C:/CVSHome。
* 点击 Add 按钮增加 Repository 如 test。
* 此时 CVSNT 会自动创建 C:/CVSHom/test 目录及下面的 CVSROOT 目录。
配置 CVS 仓库:
* 使用 cvswriter 用户取出 /test 仓库下的 CVSROOT 模块。
* 修改 CVSROOT/config 文件,把 #LockDir 设置成 LockDir=C:/CVSLock
注:去掉行首的 # 号。
* 提交修改后的 config 文件。
* 修改 C:/CVSHome/test/CVSROOT/history 文件的权限,允许 CVSWriters 组读写。该文件记录了 CVS 操作历史记录,应该设置对所有人可写。
* 如果还有其它的 Repository,也可以使用类似的方法处理。
测试权限:
经过上面的设置,现在 cvswriter 应该可以取出和提交文件,而 cvsreader 用户则只能取出而不能提交。
* 用 cvswriter 用户在 /test 仓库下创建一个新模块 module1
* 如果 module1 目录对 CVSReaders 组只读,则 cvsreader 只能取出。
* 如果 module1 目录对 CVSReaders 组可写,则 cvsreader 还可以提交。
用户还可以根据需要,根据特定用户组或用户对模块下的子目录和文件进行单独的权限设置。
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
CVS 在 Windows 下的应用系列:
在 NTFS 中为 CVSNT 增加精确权限控制的方法
作者:CnPack 开发组 与月共舞
主页:http://www.cnvcl.org
邮件:yygw@yygw.net
日期:2003-11-17
很多使用 CVSNT 的朋友常常会抱怨 CVSNT 没有提供模块级的读写权限控制,通过 passwd 文件虽然可以限制只读用户,但无法对各个模块分别进行控制。
有人尝试直接在 NTFS 中指定模块访问权限,这样虽然可以限制用户提交,但同时也限制了用户取出模块。
事实上,通过简单的配置,完全可以在 CVSNT 中实现精确的读写权限控制,方法如下:
安装完 CVSNT 后,分别在 NTFS 分区上建立两个目录,如:
(注:此处及以下的设置内容都可以根据需要自己调整,只用于说明方法。)
* C:/CVSHome CVS Repository 仓库主目录
* C:/CVSLock CVS 访问加锁目录
创建本地用户组及用户:
* 用户组 CVSReaders,拥有读权限的用户组
* 用户组 CVSWriters,只拥有写权限的用户组
* 用户 cvsreader,只读用户,属于 CVSReaders 组。
* 用户 cvswriter,可写用户,属性 CVSWriters 组。
设置 CVS 相关目录访问权限:
* 设置 Windows 临时目录权限,允许 CVSReader、CVSWriter 组读写。
CVSNT 运行时会用到临时目录,如果用户没有写权限,将无法正常工作。
* 设置 C:/CVSLock 权限,允许 CVSReader、CVSWriter 组读写。
用户在访问 CVS 时,需要创建临时的加锁文件,此处分配写权限。
* 设置 C:/CVSHome 权限(带继承),允许 CVSReader 读,CVSWriter 写。
到 CVSNT 控制面板中创建并初始化 CVS 仓库:
* 打开 CVSNT 控制面板。
* 在 Repositories 页面设置 Repository Prefix 路径为 C:/CVSHome。
* 点击 Add 按钮增加 Repository 如 test。
* 此时 CVSNT 会自动创建 C:/CVSHom/test 目录及下面的 CVSROOT 目录。
配置 CVS 仓库:
* 使用 cvswriter 用户取出 /test 仓库下的 CVSROOT 模块。
* 修改 CVSROOT/config 文件,把 #LockDir 设置成 LockDir=C:/CVSLock
注:去掉行首的 # 号。
* 提交修改后的 config 文件。
* 修改 C:/CVSHome/test/CVSROOT/history 文件的权限,允许 CVSWriters 组读写。该文件记录了 CVS 操作历史记录,应该设置对所有人可写。
* 如果还有其它的 Repository,也可以使用类似的方法处理。
测试权限:
经过上面的设置,现在 cvswriter 应该可以取出和提交文件,而 cvsreader 用户则只能取出而不能提交。
* 用 cvswriter 用户在 /test 仓库下创建一个新模块 module1
* 如果 module1 目录对 CVSReaders 组只读,则 cvsreader 只能取出。
* 如果 module1 目录对 CVSReaders 组可写,则 cvsreader 还可以提交。
用户还可以根据需要,根据特定用户组或用户对模块下的子目录和文件进行单独的权限设置。
发表评论
-
tomcat配置
2009-11-26 10:40 744Tomcat配置技巧精华详解 1、配置系统管理(Admin W ... -
tomcat集群和负载均衡
2009-11-26 09:58 1269(一)环境说明 (1)服务器 ... -
XPlanner
2009-11-26 09:52 956一、 XPlanner简介 XPlanner 是一个基于Web ... -
tomcat启动分析
2009-11-26 09:45 6731 - Tomcat Server的组成部 ... -
maven
2009-11-20 10:56 7915分钟熟悉Maven 根据官网文档翻译,其中有些地方翻译的不够 ... -
Rational工具介绍
2009-11-18 17:21 1151Rational工具介绍『转』 Rational系列工具贯穿 ... -
jdk+ tomcat调试
2009-11-17 10:08 859在tomcat/webapps下建一个文件夹如:bbs再建一个 ... -
cvs VS svn
2009-11-13 15:32 3104所有的文档都显示SVN可 ... -
Apache 80端口占用
2009-10-26 19:14 825首先用netstat -ano 看是得到占用80端口的进程的P ... -
Apache和Tomcat 区别
2009-10-26 13:45 1264APACHE是一个web服务器环 ... -
MyEclipse error log
2009-10-23 09:24 2075!SESSION 2009-10-23 09:11:57.62 ... -
Tomcat1
2009-10-03 12:42 664性能测试与分析是软件开发过程中介于架构和调整的一个广泛并比较不 ... -
MyEclipse skills
2009-09-29 13:37 1167myeclipse 使用技巧 第一步: 取消自动validat ... -
tomcate 调试 常见bug
2009-09-23 14:25 1140Tomcat调试经验。一些自己总结的,一些是他人的经验。 1 ... -
同时启动两个tomcat
2009-09-23 13:55 2346在server.xml中要修改三个端口:8005, ... -
jad
2009-09-22 10:06 1332今天在理解struts的表单 ...
相关推荐
CVS 服务器程序 CVSNT 2.0.58d + CVS 客户端工具 TortoiseCVS 1.10.10 (for win7)+ 图示说明 最新的版本cvsnt-2.5.03.2382有4.2MB,追新的朋友可以自己上官网下载. 1都安装好软件 2配置服务器端 a 查看运行...
【CVS小乌龟工具】是一款专为64位操作系统设计的版本控制系统客户端,它集成了CVS(Concurrent Versions System)的核心功能,并且优化了对64位系统的支持,确保在变态的64位环境下也能高效稳定地运行。TortoiseCVS...
CVS(Concurrent Versions System)是一种广泛使用的源代码版本控制系统,它允许开发团队协同工作,同时跟踪代码的历史版本。在软件开发过程中,CVS扮演着至关重要的角色,它确保了团队成员之间的协作效率,同时也...
TortoiseCVS是一款在Windows环境下非常流行的CVS(Concurrent Versions System)客户端工具,它提供了与文件资源管理器集成的图形用户界面,使得版本控制操作更为直观和便捷。中文语言包是为TortoiseCVS提供的本地化...
### Linux下的CVS配置规则及细节问题 #### CVS简介与安装 CVS(Concurrent Versions System)是一款在开源社区广泛使用的版本控制系统。它主要用于管理软件项目中的源代码变更历史,支持多用户协作开发,能够有效地...
【Eclipse中CVS使用详解】 CVS,全称为Concurrent Versions System,是一种广泛使用的开源版本控制系统。在软件开发过程中,版本控制对于团队协作至关重要,它可以帮助开发者追踪代码的修改历史,协同工作,并确保...
**CVS(Concurrent Versions System)是最简单使用方法详解** CVS,全称为并发版本系统,是一种源代码版本控制系统,用于管理和跟踪项目中的文件变化。它允许多人协作开发,并记录每个文件的历史版本,以便在出现...
CentOS 5 CVS 安装与配置 在本文中,我们将一步一步地指导您如何在 CentOS 5 中安装和配置 CVS(Concurrent Versions System),并且介绍用户管理的相关知识。 安装 CVS 首先,我们需要安装 CVS 软件包。使用以下...
《CVS Server安装与Eclipse简单使用指南》 在软件开发过程中,版本控制系统的使用是至关重要的,它能够帮助团队协同工作,跟踪代码修改历史,防止数据丢失。CVS(Concurrent Versions System)是一个开源的版本控制...
### 使用MyEclipse通过CVS导入项目的操作步骤 在软件开发过程中,版本控制系统(Version Control System,VCS)是必不可少的工具之一,它能够帮助团队有效地管理代码版本、协同工作并追踪修改历史。其中,CVS...
在IT行业中,版本控制系统是开发团队协作的重要工具,其中CVS(Concurrent Versions System)是一个广泛应用的开源版本控制系统。然而,对于中文环境的用户来说,CVS在处理中文文件名或内容时可能会出现乱码问题,这...
**TortoiseCVS:CVS版本控制系统的友好界面** TortoiseCVS是一个专为Windows用户设计的CVS(Concurrent Versions System)版本控制系统客户端工具。CVS是一种开源的、分布式版本控制系统,用于管理软件项目的源代码...
**CVS(Concurrent Versions System)**是一种广泛使用的版本控制系统,尤其在开源软件开发中扮演着重要角色。它能够跟踪代码的变化,管理多个开发者协作时的版本冲突,并提供了历史记录和回滚功能,使得团队协作...
《CVS 1.11.23:版本控制系统的历史与应用详解》 CVS(Concurrent Versions System),中文常称为并发版本系统,是最早流行的一种开源版本控制系统,它的出现为软件开发团队提供了协同工作、代码管理和历史追踪的...
TortoiseCVS是一款在Windows操作系统上广泛使用的CVS(Concurrent Versions System)客户端,它提供了与文件系统集成的图形用户界面,使得版本控制操作更加直观和便捷。TortoiseCVS简体中文语言包是专为中国用户设计...
本人之前都是用的git和svn,跳槽后发现新公司用的cvs,一番研究后决定把资源共享,下载这个应该能解决你的问题,安装包都是官方网站下载的,无毒放心使用,个人整理也花费了一番功夫,所以还是不免费了,有需要的...
**TortoiseCVS:CVS的便捷桌面客户端** TortoiseCVS是CVS(Concurrent Versions System)的一个图形用户界面(GUI)工具,它为开发者提供了一种直观且易于使用的界面来管理版本控制。CVS是一个开源的版本控制系统,...
TortoiseCVS-1.12.5与CVSNT是两个在IT行业中用于版本控制的重要工具。本文将深入探讨这两个工具以及它们在协同开发环境中的应用。 TortoiseCVS是一个集成在Windows资源管理器中的CVS(Concurrent Versions System)...
CVS(Concurrent Versions System)是一种版本控制系统,用于管理和跟踪文件及目录的变更。它在软件开发中扮演着重要的角色,特别是在多人协作的环境中,帮助开发者们同步代码、解决冲突和回溯历史版本。 **安装CVS...
### 解决TortoiseCVS文件夹图标不显示 #### 背景介绍 TortoiseCVS 是一款用于Windows操作系统的开源版本控制系统客户端。它为用户提供了一个图形化的界面来管理代码版本,使得用户能够方便地进行代码提交、更新、...