工作思路:
在一台服务器上建立一个代码仓库(repository),其中存放了许多项目的源程序,由管理员管理这些源程序,
每个用户在使用仓库前,把仓库里的项目文件下载到本地,先在本地修改,然后用cvs命令提交.
CVS在SCCS和RCS的基础上开发
CVS Concurrent Version System
SCCS Source Code Control System
RCS Revision Control System
工作思路:
在一台服务器上建立一个代码仓库(repository),其中存放了许多项目的源程序,由管理员管理这些源程序,
每个用户在使用仓库前,把仓库里的项目文件下载到本地,先在本地修改,然后用cvs命令提交.
1.服务端
# groupadd cvs
# useradd cvsroot -g cvs -s /sbin/nologin
[cvsroot@]$ chmod 771 .
[cvsroot@]$ cvs -d /home/cvsroot init
加入到xinetd启动
/etc/xinetd.d/cvspserver
service cvspserver
{
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
# chmod 644 cvspserver
# service xinetd restart
编辑/etc/group加入可以使用CVS的用户名
cvs:x:501:iry,iryshe
2.客户端
$ export CVSROOT=:pserver:iry@192.168.1.1:/home/cvsroot
$ cvs login
or
$ cvs -d :pserver:iry@192.168.1.1:/home/cvsroot
3.管理CVS服务器
在/home/cvsroot/CVSROOT中有三个配置文件: passwd, readers, writers
passwd: cvs用户列表文件
{cvs username}:[encrypted password]:[等效的系统用户名]
4. 操作
$ cvs 动作 文件名
动作: login, logout, commit, checkout, update, status, diff, log, add, remove
eg. cvs diff -c index.php
如果不指定文件名,则cvs会操作当前目录下所有的文件和子目录
新增文件:
a. edit a new file
b. cvs add filename
c. cvs commit filenmae -m ""
新增目录:
a. mkdir dirname
b. cvs add dirname
删除文件:
a. rm filename
b. cvs remove filename
c. cvs commit -m "" filename
删除目录:
a. cd dirname && rm * -f
b. cvs remove *
c. cvs commit -m "" *
d. cvs update -P //告诉cvs服务器删除空目录
更改文件名:
a. mv oldfile newfile
b. cvs remove oldfile
c. cvs add newfile
d. cvs commit -m "" oldfile newfile
新建CVS项目:
a. cd php-project
b. cvs import -m "" php-project v_1_0_0 start