一,什么是CVS?
Concurrent Versions System 版本控制系统
二,CVS主要面对什么情况
1.修改代码时不小心产生了一些bug但当时没有发现,等发现后又需要回到旧版本做修改
2.成员之间在没有协商好前很容易覆盖文件,一些编辑器如Emacs可保证同一个文件不会两次修改,但使用不同的编辑器保护就没有作用了。
3.每一个新版本就是一个新文件生成,但只记录此版本与上个版本之间的变化部分,而不是重新复制占用过多空间。
4.版本间的不同部分保留在一个文件中。
三,CVS的几个重要概念
1.仓库(repcsitory)
存储全部的版本控制下的文件的备份,通常不能直接访问必须通过cvs命令拷贝到本地修改后在同步回仓库。仓库和工作目录是隔离的。
2.版本(revision)
每个文件都独立的版本系统,如下
file1_版本1----file1_版本2----file1_版本3
file2_版本1----file2_版本2----file2_版本3
3.分支(branch)
好像file1+file2实现了一个功能成为整个项目的一个分支
修改一个分支不会影响到其他分支
4.冲突(conflct)
完全的纯文本冲突无法被cvs解决,比如user1修改x=1后上传,而user2在之后的一分钟修改同一行代码成x=2后上传,那么user1依然认为x=1但当user1调用x函数计算x+y时发现返回截获增加了1。这种冲突只能由用户自身沟通解决。
四,CVS如何解决上述问题的
1.采用开发者隔离,每个人在修改代码前需要先下载代码到本地的工作目录(workspace),修改后在上传
2.采用策略是copy----modify----merge
拷贝到本地----修改代码---上传和以前版本合并内容
下面我们来看看cvs服务器的建立过程
RedHat Enterprise Linux 5 自动安装了cvs。
查看是否安装方式:
rpm -qa | grep cvs
如果出现CVS的版本信息就证明已经安装成功了
1.创建用户和组
我们的想法是能使用cvs服务器的都在cvs这个组中,cvsroot成为这个组的小管理员,我们在位每个编程人员设定自己喜欢的用户名来登录cvs服务器.
我先建立cvsroot用户和组,并直接把cvsroot加入到cvs组中
我在为一个编程人员创建他喜欢的账户
-g是直接把fish加入到cvs组中
-M是在建立fish时不产生家目录
2.查看端口配置情况,看到2401在tcp和udp协议上都有即可
3.修改启动脚本
vi /etc/xinetd.d/cvs
因为cvs属于xinetd管理,所以只要重启xinetd服务即可重启cvs。
如何xinetd未安装,先安装。rpm -ivh xinetd-xxx.rpm 。
在linux光盘的Server中可找到,这是最简单的安装方式了。
4.重新启动服务
5.初始化cvs服务
6.修改环境变量让系统启动时就可以认识cvs的仓库
vi /etc/profile
7.无需重启立刻更新环境变量
8.为了能让开发人员都能使用仓库注意给权限
9.默认情况下cvs使用的是系统用户登录的,也就是/etc/passwd里的用户,为了考虑系统安全,我们可以使用独立的用户管理将用户名和密码保存在/home/cvsroot/CVSROOT/passwd文件中,这样做的好处是你修改了系统账户的权利在cvs中对应的账户也跟着改变,并且cvs账户的密码和系统账户的密码可以不一致,这样当你登录cvs后你输入cvs密码,而有效保护了对应的系统账户密码,因为cvs并没有提供类似可以把明文密码转成密文(MD5)的命令所以借用了apache服务的命令来做的.
创建cvs独立passwd命令为 htpasswd -c passwd cvsroot (/home/cvsroot/CVSROOT下执行)
当然你也可以映射其他用户,注意的是必须保证/home/cvsroot/CVSROOT有权限能被其他用户所访问
看看../CVSROOT/passwd文件的样子
10.现在有个新问题就是如果/home/cvsroot/CVSROOT/passwd文件中没有这个用户,cvs依然会去询问系统的/etc/passwd是否有这个用户及请求验证,那这样最后问来问去又需要输入系统的账户和密码还是有风险.所以我干脆就算在CVSROOT/passwd下找不到这个用户也不去问系统有没有这个用户.
vi /home/cvsroot/CVSROOT/config
此时我们可以在/etc/passwd和/etc/shadow里吧关于cvsroot和fish的信息删除掉.我已经悄悄的干掉他们连个了.
11.现在你可以启动cvs服务了
12.我们看看服务启动后验证一下,端口号已经开启
或者使用 netstat -l | grep cvs
13.现在我们就可以用刚才的fish开发账户登录测试一下了
14.你可以配置用户对仓库文件中的权限,readers文件记录具有"只读"权限的用户,writers文件记录拥有读写权限的用户,readers文件比writers优先,也就是说出现在readers中的用户将会是只读的,不管writers文件中是否存在该用户
********************************************
另外一种建立CVSROOT/passwd文件的方式,参考一下
groupadd cvs
useradd -g cvs -M test1
passwd test1
以后就用test1来登录cvs
cp /etc/shadow /home/cvsroot/CVSROOT/passwd
chmod 0644 /home/cvsroot/CVSROOT/passwd
vi /home/cvsroot/CVSROOT/passwd
只保留cvsroot和test1的记录,形式如下
cvsroot:$123456789:cvsroot
test1:$12345sdjkfe:test1
然后再系统中删除掉test1和cvsroot vi /etc/passwd和 /etc/shadow
**********************************************
cvs 操作参考文档
登录方式:
cvs -d :pserver:test@localhost:/home/cvsroot login
test 在/home/cvsroot/CVSROOT/passwd 中定义。
如: test:xxxxx:cvsroot
问题总结:
1. 其中cvsroot为组,最好定义一个cvsroot帐号. Eclipse 连接时没建立报 no system user.
2.client 访问CVS时连接不上。
检查防火墙 /sbin/iptables -L&line;grep cvs
如果看到
ACCEPT tcp -- anywhere anywhere tcp dpt:cvspserver
说明端口已经打开,否则请打开防火墙2401端口
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2401 -j ACCEPT
/sbin/service iptables save
3.如果提示#cvs.lock): Permission denied之类的错误
修改 CVSROOT/config 文件
把LockDir=/var/lock/cvs 前面的#号去除,然后用root更改一下cvs目录的权限即可
chmod 777 /var/lock/cvs -R
4.
打开cvs客户端,我这里使用的是Eclipse自带的
connetion type 为 pserver
user yukang
password
host 你的主机名
Repository path: /home/cvsroot
如果提示unrecognized auth response from 你的主机名: cvs pserver: cannot open /home/cvsroot/CVSROOT/config: Permission denied
请 执行
vi /etc/selinux/config
修改SELINUX=disabled
保存退出,重启电脑
http://www.blogjava.net/keweibo/articles/311216.html
http://linuxsafe.blog.51cto.com/438124/498122
http://hackang.iteye.com/blog/234000
group : groupcvs
user: cvsroot
password :cvsroot
[root@bogon ~]# useradd -g groupcvs -d /home/cvsroot cvsroot
[root@bogon ~]# cat /etc/passwd | grep cvsroot
cvsroot:x:543:502::/home/cvsroot:/bin/bash
[root@bogon ~]# chmod u+x /home/cvsroot
[root@bogon ~]# passwd cvsroot
Changing password for user cvsroot.
New UNIX password:
BAD PASSWORD: it is based on your username
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[cvsroot@bogon root]$ cvs -d /home/cvsroot init
分享到:
相关推荐
本文主要介绍了在 Linux 系统中安装配置 CVS 服务器的全过程,从确认系统中是否已经安装了 CVS 服务到建立 CVSROOT 目录、配置 CVSROOT 目录权限、建立 CVS 仓库、配置 CVS 服务器和添加可以使用 CVS 服务的用户。
- 本文详细介绍了如何在Linux环境下安装和配置CVS的过程,包括检查现有安装、创建用户和用户组、设置目录权限、配置CVS服务以及设置用户权限等关键步骤。 - 通过这些步骤,可以有效地在Linux环境中搭建起一个功能...
Linux 下 CVS 的配置与安装 安装 CVS 在 Linux 系统中,安装 CVS 服务器端非常重要。首先,需要确认系统是否已经安装了 CVS。如果没有安装,可以使用以下命令安装: ``` # yum install cvs ``` 配置 CVS 服务器 ...
6. **配置和启动CVS服务**:在Red Hat系统中,CVS服务通常通过`xinetd`或`inetd`管理。首先,在`/etc/services`文件中添加对CVS服务的定义。然后,根据系统使用的服务类型,编辑相应的配置文件: - 对于使用`inetd`...
### CVS安装与配置管理 #### 一、简介 CVS(Concurrent Versions System)是一种开源的版本控制系统,用于管理软件开发过程中的...掌握CVS的基本配置和使用方法对于理解版本控制系统的原理和发展历程也有很大帮助。
本文详细介绍了在Linux环境下如何配置和使用CVS,包括安装、配置CVS用户和组、设置文件权限、初始化CVS仓库、配置CVS服务器以及从客户端连接使用CVS等关键步骤。通过遵循这些步骤,可以确保CVS系统在Linux环境下稳定...
本文档详细介绍了在 Linux 操作系统下安装、部署、备份和恢复 CVS 服务器的步骤,旨在帮助读者快速搭建 CVS 服务器环境。 一、安装 Linux 服务器 在安装 Linux 服务器时,需要选择合适的版本,我们建议选择 9.0 ...
在Linux系统,特别是Red Hat 9.0环境下,配置CVS(Concurrent Versions System)配置库是一项关键的任务,用于版本控制和团队协作。CVS 2.0.4是这个过程中涉及的版本。以下是详细步骤: 1. **检查CVS是否已安装**:...
你可以通过运行以下命令来检查和安装这些依赖: ```bash yum groupinstall "Development Tools" yum install perl ``` 三、安装CVS 1. 添加RPM仓库: Red Hat Enterprise Linux 5的默认仓库可能不包含最新的CVS包...
安装WinCVS后,你可以通过图形界面进行CVS的配置和操作,而无需在命令行下输入命令。 总的来说,CVS安装配置涉及多个环节,包括服务器和客户端的设置、项目管理和版本控制等。了解并熟练掌握这些步骤和知识点,将有...
下面将详细介绍如何在Linux服务器上设置CVS服务器,并在Windows客户端上安装并配置CVS客户端。 一、Linux服务器端CVS服务器的安装与配置 1. **安装CVS服务端** 在Linux系统中,通常使用包管理器来安装CVS。例如,...
以下是对CVS在Red Hat 6.2和5.2环境下安装和配置的详细步骤及涉及的知识点: 1. **安装CVS** - 使用`rpm -q cvs`命令检查CVS是否已安装。如果没有,可以通过`yum install cvs`或`apt-get install cvs`(根据不同的...
- CVS安装:首先从官方网站获取CVS的安装包,按照平台(如Windows、Linux或Mac OS)进行安装。然后设置环境变量,确保`cvs`命令可以在命令行中直接使用。 - SVN安装:同样,从Apache官网下载适合操作系统的...
【知识点详解】 ...在Linux(尤其是Redhat Linux)上配置CVS服务器涉及安装、配置服务、设置认证方式、管理用户权限以及初始化仓库等一系列步骤。理解这些步骤对于有效地管理和控制项目代码至关重要。
### Linux下CVS服务器的配置知识点详解 #### 一、验证是否已安装CVS 在开始配置CVS服务器之前,首先要确认系统是否已经安装了CVS。可以通过以下命令检查: ```bash # rpm -qcvs ``` 如果系统中已安装CVS,此命令...
首先,为了配置CVS客户端,你需要确保你的系统上已经安装了CVS软件。在大多数Linux发行版中,可以通过包管理器(如`apt`或`yum`)轻松安装。在Windows上,你可以下载并安装像`CVSNT`这样的第三方实现。在macOS上,...
下载完成后,进行编译和安装。通常,这包括解压缩源代码包,进入解压后的目录,运行`configure`脚本来配置安装路径,然后执行`make`和`make install`。在这个例子中,CVS被安装到了`/usr/local/terry_yu/cvs`目录下...
### Linux下配置CVS服务器详解 CVS(Concurrent Versions System)是一款开源版本控制系统,在软件开发过程中被广泛用于代码管理。本文将详细介绍如何在Linux环境下配置CVS服务器,包括搭建环境、用户管理、权限...
通过上述步骤,你可以在Red Hat Enterprise Linux AS release 4 (Nahant Update 4) 系统上成功安装并配置CVS服务,同时也可以在Windows环境下通过Wincvs和Eclipse等工具连接并使用该服务。CVS作为一种经典的版本控制...
## 二、CVS配置 1. **服务器配置**:在服务器端,你需要设置CVSROOT目录,这通常是`/var/cvs`。在这个目录下,创建`modules`文件来定义项目结构,` CVSROOT`子目录用于存储CVS元数据。 2. **客户端配置**:在...