主要参考:
Colin Yu软件工程师IBM 多伦多实验室 来源:UML软件工程组织
Paladin.lin SCMChina ++C WinCVS操作指南
1. 测试是否安装了CVS
输入命令:rpm -qa|grep 'cvs'
如果返回cvs-1.11.2-10类似信息,则表示已经安装;否则需要手动安装。
CVS RPM通常位于RedHat CD#2的RedHat/RPMS中。mount CD后,用命令:rpm -i /mnt/cdrom/RedHat/RPMS/cvs-1.11.2lp1-3.i386 (具体版本视系统盘而不同).
2. 建立 CVS 用户帐户和组
- 以 root 用户的身份登录。
- 创建一个名为 cvs 的用户,让这个用户使用 cvs 作为他的主组。
- 创建将在 Application Developer 中使用 cvs 的用户。本文使用 cvsdev1 和 cvsdev2。
- 使用 cvs 的开发者可以使用他们的私有组作为他们的主组。例如,cvsdev1 的主组是 cvsdev1,但要确保他们还属于 cvs 组。
3. 建立文件夹和资源库
- 以用户 cvs 的身份登录。
- 在 cvs 自己的主目录(即 /home/cvs/)下创建一个名为 repository 的目录。
- 设置目录 /home/cvs/repository 的访问级别和访问模式:chmod 770 /home/cvs/repository ;chmod 770 /home/cvs
- 设置目录 /home/cvs/repository 的 setgid 位:chmod g+s /home/cvs/repository
说明:在一个目录中创建文件时,该文件缺省情况下属于其所有者的主组。设置了目录的 setgid 位后,新文件将与该目录属于相同的组,而不属于其所有者的主组。例如,如果用户 cvsdev1 在目录 /home/cvs/repository 中创建了一些文件,则这些文件将属于 cvs 组而不是它的主组 cvsdev1。
这一步至关重要,因为它使 CVS 用户能够检出其他用户创建的文件。如果这一步没完成,那么当您检出另一个用户创建的文件时,操作将失败,并发出下面这条消息:
Failed to create lock directory for /home/cvs/repository/...: Permission denied.
Failed to obtain dir lock in repository /home/cvs/repository/...
4. 初始化资源库:
cvs -d /home/cvs/repository init
5. 重新启动 xinetd 服务
service xinetd restart
6. 建立用户环境
打开文件 /etc/profile。您应该能在该文件中看到下面这些行:
USER='id -un'
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
- 在环境变量 MAIL 后添加一行内容: CVSROOT=":pserver:$USER@localhost:/home/cvs/repository"
- 在该文件中,您还应该看到这样一行: export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
- 修改这一行并将 CVSROOT 添加到导出(export)列表中,如下所示: export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC CVSROOT
- Developer 1 以 cvsdev1 的身份登录。
- 通过输入下面的命令来确保环境变量是正确的: echo $CVSROOT
它应该返回与用户名有关的象下面这样的结果:
:pserver:cvsdev1@localhost:/home/cvs/repository
- 用下面的命令登录 CVS: cvs login
您将被提示提供密码。输入您的 Linux 密码。
- 创建一个名为 project1 的目录: mkdir project1
- 在目录 project1 中创建一个名为 Test.java 的文件,文件内容如下: public class Test{
public String sayHello(String name){
return "Hello"+name;
}
}
- 使用这些命令将 Test.java 导入到 CVS 资源库中的模块 project1: cd /home/cvsdev1/project1
cvs import -m "import Test.java" project1 wsadgroup release1_0
CVS 导入操作完成后,您应该会看到一条这样的消息:
N project1/Test.java
No conflicts created by this import
- 备份您的源代码: cd
mv project1 project1.sav
- 从 CVS 资源库检出 project1: cd
cvs checkout project1
您应该会看到在 /home/cvsdev1 下创建了一个名为 project1 的新目录,该目录下有一个文件 Test.java 和一个目录 CVS。
- Developer 2 以 cvsdev2 的身份登录。
- cvsdev2 登录 CVS: cvs login
- cvsdev2 从 CVS 检出 project1: cvs checkout project1
您应该会看到这样一条来自 CVS 的消息:
cvs server:Updating project1
U project1/Test.java
- 向 Test.java(位于目录 project1 中)添加一个新方法: public String sayBye(String name){
return "Bye, " + name;
}
- 把 Test.java 检入到资源库中: cvs commit -m "checkin Test.java" Test.java
您应该会看到这样一条来自 CVS 的消息:
Checking in Test.java;
/home/cvs/repository/project1/Test.java, v
用户 cvsdev1 用下面这些命令捕获 cvsdev2 所做的更改:
cd /home/cvsdev1/project1
cvs update Test.java
您应该会看到这样一条来自 CVS 的消息:
U Test.java
您可以用编辑器打开 Test.java 来查看 cvsdev2 所做的更新。
8. 用WinCVS测试
认证方式:pserver
路径:/home/cvs/repository
主机地址:192.168.0.169
用户名:cvsdev1
CVSROOT:
[email=cvsdev1@192.168.0.169:/home/cvs/repository]cvsdev1@192.168.0.169:/home/cvs/repository[/email]
密码:cvsdev1 的linux登录密码
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31271/showart_357259.html
