工作思路:
在一臺(tái)服務(wù)器上建立一個(gè)代碼倉庫(repository),其中存放了許多項(xiàng)目的源程序,由管理員管理這些源程序,
每個(gè)用戶在使用倉庫前,把倉庫里的項(xiàng)目文件下載到本地,先在本地修改,然后用cvs命令提交.
CVS在SCCS和RCS的基礎(chǔ)上開發(fā)
CVS Concurrent Version System
SCCS Source Code Control System
RCS Revision Control System
工作思路:
在一臺(tái)服務(wù)器上建立一個(gè)代碼倉庫(repository),其中存放了許多項(xiàng)目的源程序,由管理員管理這些源程序,
每個(gè)用戶在使用倉庫前,把倉庫里的項(xiàng)目文件下載到本地,先在本地修改,然后用cvs命令提交.
1.服務(wù)端
# groupadd cvs
# useradd cvsroot -g cvs -s /sbin/nologin
[cvsroot@]$ chmod 771 .
[cvsroot@]$ cvs -d /home/cvsroot init
加入到xinetd啟動(dòng)
/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服務(wù)器
在/home/cvsroot/CVSROOT中有三個(gè)配置文件: passwd, readers, writers
passwd: cvs用戶列表文件
{cvs username}:[encrypted password]:[等效的系統(tǒng)用戶名]
4. 操作
$ cvs 動(dòng)作 文件名
動(dòng)作: login, logout, commit, checkout, update, status, diff, log, add, remove
eg. cvs diff -c index.php
如果不指定文件名,則cvs會(huì)操作當(dāng)前目錄下所有的文件和子目錄
新增文件:
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服務(wù)器刪除空目錄
更改文件名:
a. mv oldfile newfile
b. cvs remove oldfile
c. cvs add newfile
d. cvs commit -m "" oldfile newfile
新建CVS項(xiàng)目:
a. cd php-project
b. cvs import -m "" php-project v_1_0_0 start