红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Debian

Debian上配置CVS

发布时间:2007-09-07 00:44:15来源:红联作者:million
又看了些书,写了几个读书笔记,想起了以前写的东西都散乱在各处,不成东西,多次作了重复的工作,非常浪费。突然想起这阵子用的CVS正好可以解决一下这个问题,身边也正好有台空闲的机器,就拿他开刀吧。

Google果然是好,搜了一下Debian CVS便出来不少文章,以下记录一下过程。

服务器端:

1. 照他所说,一上来先看有没有安装CVS

whereis cvs

没有,安装之

sudo apt-get install cvs

此处提到CVSD,此为cvs的一个辅助工具,目前俺系菜鸟,尚未有使用的必要。闲话少述,继续。

2. 创建cvs用户和主目录以及cvs用户组,此处不细说了

sudo groupadd cvs

sudo mkdir /home/cvsroot

sudo useradd -g cvs -G cvs -d /home/cvsroot cvsroot

sudo passwd cvsroot

3. 然后更改文件属主及访问权限

chown -R cvsroot.cvs /home/cvsroot

chmod -R 775 /home/cvsroot

4. 切换到cvsroot用户操作

su cvsroot

设置全局变量CVSROOT

export CVSROOT=/home/cvsroot

初始化cvs仓库

cvs init

5. 创建登陆cvs的用户管理文件

touch /home/cvsroot/CVSROOT/passwd

vim /home/cvsroot/CVSROOT/passwd

以以下格式填入内容:

username:password:cvsroot

其中password由以下perl脚本passwdgen.pl生成

#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}\n";

运行方法为perl passwdgeg.pl yourpasswd

然后会输出加密后的字符串,填入上面passwd文件中的对应位置即可。

6. 设置开机启动,查看/etc/services中关于cvspserver的选项是否开启,若没有则取消前面的#号

创建cvspserver文件,切换用户

cd /etc/xinetd.d/

在此处我发现我这里没有xinetd.d这个目录,因为没有安装xinetd.d,所以先安装它

sudo apt-get install xinetd

然后进入上述目录

sudo touch cvspserver

vim cvspserver

填入以下内容

service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_success += USERID
log_on_failure += USERID
}

此处注意每行第一个"="两端要有空格,各选项要顶格写。

然后重启xinetd服务

sudo /etc/init.d/xinetd restart

然后运行

netstat -l|grep cvspserver

看是否cvspserver已经启动

至此服务器端配置完成



客户端测试

1. 首先login

cvs -d ":pserver:username@cvsserveraddress:/home/cvsroot" login

此处username和cvsserveraddress用自己的设置替换,系统会提示输入密码

输入密码,若无回显login成功,若登陆不成功,可以查看服务器段cvspserver是否已经启动,另外察看用户名密码是否匹配。注意passwd文件中保存的为加密字符串。

2. 上传档案

进入你希望cvs管理的代码目录,运行

cvs -d ":pserver:username@cvsserveraddress:/home/cvsroot" import -m "project" projectname username start

此处几个选项 -d指定连接的cvs服务器的名称,import表示操作为导入档案,-m后的选项为log内容,模块名称,装载者,标识符号(具体我还不了解,可以查看文档)

然后开始提交,提交完成。

此处我自己碰到一个问题,就是空目录是会被忽略掉的,而他们是我想上传上去的,估计import的选项中应该有此一项,还不确定。

3. 取出档案

进入你要放从服务器上取下来的档案的目录,运行checkout命令如下:

cvs -d ":pserver:username@cvsserveraddress:/home/cvsroot" login" checkout dirname

其中dirname为你确定的project的名称或存放档案的目录的名称。

如果成功,说明一切OK了。

4. 权限管理

可以在CVSROOT底下建立两个文件,readers和writers。文件中每一行写一个用户名,readers里面的用户具有只读权限,writers用户有读写权限。
文章评论

共有 0 条评论