CVS 是一种客户机/服务器系统,可以让">开发人员将他们的项目存储在称为资源库的中央位置。使用 cvs 客户机工具,开发人员可以对资源库的内容进行更改。CVS 资源库会依次记录对每个文件所做的每个更改,并创建一个完整的项目开发进展历史。开发人员可以请求特定源文件的旧版本、查看更改日志,并根据需要执行其它一些有用的任务。
许多开放软件项目都有他们自己的 CVS 服务器,项目开发人员把这些服务器作为他们工作的源码仓库。源码仓库的源码目录中保存的都是实现版本控制的历史文件(history file),历史文件名为filename,v。历史文件包含用来恢复所有版本文件的足够信息、所有提交的信息以及提交者信息。历史文件常常被称作RCS文件,因为最早是RCS程序用这种格式来保存文件的所有修改信息,可以从man rcsfile得到历史文件的。
开发人员每天都会改进 CVS 资源库内的源码,且他们往往分布在世界各地,而 CVS 提供了一种必要的机制,将他们的项目联合成一个集中的、协作的整体。CVS 创建了"组织粘和剂",可以让这些开发人员改进代码而不会干扰别人、丢失重要数据或遗漏彼此对特定源文件的重要更新。
当开发人员准备好以后,他们把 CVS 上部分当前工作打包成 .tar.gz 文件,作为软件包的新官方版本来发布它。然而,由于种种原因,最新的官方发行版有时并不是最新的。在本教程的第一部分将首先介绍如何使用CVS为个人使用获取最新和最高开发人员版本的源码。
真正做起来开发工作,才发现一台CVS服务器是必不可少的,即使是很少的开发人员的项目,使用CVS也会起到很大的作用,具体什么作用,大家去体会:)
下面就把我架设CVS服务器的过程说说,和诸位前辈的不同之处在于我架设了一个WEB界面,所以说是"友好的",通过WEB界面可以非常直观的浏览代码,查看图形化的修改记录,(提交可以log到MySQL数据库--This feature is a clone of the Mozilla Project's Bonsai database.),目前SourceForge正在使用此界面的较低版本.
功能简介:
1:Base CVS Server; 2:repository browsing. 3:SQL checkin database. 4:Colorize sourcecode. 5:Can display a clickable, graphical of files in a CVS repository. 6:generate tarball from a repository on the fly. OK,Let's go!
1:初始化环境
#groupadd cvs#mkdir /home2/cvsroot#useradd -g cvs -G cvs -d /home2/cvsroot cvsroot#su - cvsroot$chmod 775.
OK!
2:启动CVS Server
诸位大虾已经有了很精辟的说明,拿来就是了!:P
#more /etc/services|grep cvspservercvspserver 2401/tcp # CVS client/server operationscvspserver 2401/udp # CVS client/server operationsOK,RedHat系统不傻,可以写脚本了.#vi /etc/xinetd.d/cvspserverservice cvspserver { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/home2/cvsroot pserver log_on_failure += USERID } :wq#ls /etc/xinetd.d/cvspserver/etc/xinetd.d/cvspserver
脚本好了!
#su - cvsroot$cvs -d /home2/cvsroot init#service xinetd restart
看看有没有?
#netstat -l |grep cvspservertcp 0 0 *:cvspserver *:* LISTEN
Great!