软件库的备份与移动
备份软件库中的文件和备份其他文件并没有不同,但你需要一个备份工具开锁住CVS.这样,你必须先注册一个可以读取软件库的用户,打开CVS软件库, 你需要编辑`#cvs.rfl’文件.
当你想用一备份的软库,恢复原来的库时,如果原库在你备份后作过改动.CVS将报错.你必须按以下的步骤来
? 得到一个新的工作目录
? 拷贝上一次提交失败的文件(,当然不能拷贝CVS的目录文件)
? 在新目录下工作,使用cvs update 或cvs diff 等命令指出那些作过改动,在使用cvs commit 将改动保存到软件库.
你如果想移动一个软件库到其他地方也很简单.最简单的方法是将向要移动的目录创到一个新的目录中去.如果你想重新使用原来的目录的话,只能手工修改`CVS/Repository' 和 `CVS/Root',除非你精于此道,否则不建议使用.
4.2 CVS 的远程用户管理
作为一个CVS 服务器,应该满足两点.首先保证软件库有足够大的空间. 其次保证有不小于32M 的内存, 服务器为每一个连接它的用户产生两个进程,在子进程上的花销较小.但如果网络带宽不够,在父进程上的花销是巨大的.
另外一个大的花销是diff 文件,当源文件很大时,对他进行验证或检测的花销也很大.
远程用户的登录认证方式
以rsh为例行远程登录
Cvs 服务器使用rsh 允许用户连接时应该配置.rshosts ,假设在远程主机tom.exsample.com 上的用户tom 需要连接到funame.simple.com 这个cvs 服务器上工作.应该编辑服务器端的bach 目录的.rshosts ,在其中加入
Tom.exsample.com tom
客户端可运行 rsh –l bach funame.simple.com ‘ echo @PATH
以确定自己可以连接到CVS 服务器上,并且客户应将显示的这个路径写入 .bashrc 或 cshrc (而不是.logiin 或.profile.)
除此之外,客户端还可以定义环境变量CVS_SEVER.来定义主机的位置. 在服务器端,修改/etc/ineted.conf文件,来告诉服务器,在获得特定端口的连接时,运行cvssever .这个端口号缺省值是:2041.当然为了不再每次使用时都要进行设置,可以在用户端通过定义环境变量CVS_AUTH_PORT来使用.
如客户端的ineted 允许使用原始调用,只需在/etc/ineted.conf 文件中添加下面的句子即可2401 stream tcp nowait root/usr/local/bin/cvs cvs –f –allow –root=/cvsroot pserver
另外还可以用- T 选项来定义缓冲目录.
—allow – root 定义了可供用户使用的软件库,如果服务器上有更多的软件库需要重新使用这个句子. 另外,内部用户可以这样定义环境变量CVSROOT
:pseve:usr@funam.simple.com:/cvsroot
其中 usr是用户名(linux系统的)funam.simple.com 是cvs 服务器,并假设 /cvsroot是软件库的目录名.远程用户可用下面的形式:
:etx:psever:usr@funam.silple.com:/cvsroot
:etx: 定义了是远程用户,其余同上.
如果客户的ineted 采用一般调用,只需在 /etc/seveice 中加入下面这一句:
cvspsever 2401/tcp
重新启动ineted 使其读取初始化文件即可.
CVS 对于用户的管理.在缺省状态下(如用telnet登陆),是和linux 系统使用同样的用户名与密码.即:只要你登陆linux 系统,就拥有$CVSROOT的只读权限..当然,对某一软件的开发者来说必须拥有相对应目录的读写权限,才能完成源代码的升级等工作.因此,CVS 也提供了自己的用户认证体系以更加方便的管理用户.