AIX5L上安装和配置CVS全攻略

来源:互联网 发布:广联达钢结构详图软件 编辑:程序博客网 时间:2024/05/23 00:00

一、AIX5上CVS的安装 

       首先获取CVS的安装介质,可以到官方网站上下载:http://www.cvshome.org/ ,这里我下载的是cvs-1.11.22.tar.gz(注意要下载source源包,而不是二进制包)。上传到AIX服务器上并解压。但在安装过程中发现需要事先安装gcc编译器,因此如果服务器上没有安装,还需要安装gcc编译器(见我的另一篇文章AIX5上如何安装gcc编译器)。以root用户执行以下命令

  cd cvs-1.11.22

        ./configure     (如果没有事先安装gcc编译器,这一步将会报错)

        make

        make install

        这里CVS就会自动安装到 /usr/local/bin下

  可以在/usr/local/bin下执行cvs检验CVS是否安装成功

二、AIX5上CVS的配置

      1、创建用户和组

  利用smitty 创建用户cvsroot和组cvs并将用户cvsroot添加到cvs组中,然后为cvsroot设置密码,cvsroot用户即为CVS服务器的管理员,并保证cvsroot用户的PATH环境变量中包含路径/usr/local/bin

      2、初始化CVS服务器的根目录

         su - cvsroot

         cvs -d /home/cvsroot init

       这样/home/cvsroot目录就成为CVS服务器的根目录,以后创建的目录都将默认的存放在这个目录下。

      3、配置服务

  修改文件/etc/services,查找是否有如下两行,如果没有则添加:

  cvspserver      2401/tcp                    # CVS client/server operations 
  cvspserver      2401/udp                    # CVS client/server operations

  cvs服务由inted来唤起,因此需要改动inetd提供的服务,修改文件/etc/inetd.conf,添加:

  cvspserver stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/home/cvsroot  pserver

  4、重启服务
  $stopsrc -s inetd
  $startsrc -s inetd
三、WinXP下WinCVS的安装与配置

 5、查看2401端口
 $netstat -a|grep cvs
 tcp4       0      0  *.cvspserv             *.*                    LISTEN

 6、配置cvs环境
 

  在 cvs 管理员用户的HOME目录里有一个 CVSROOT 目录,这个目录里有三个配置文件,passwd, readers, writers,可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用:

 passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:

 {cvs 用户名}:[加密的口令]:[等效系统用户名]

 readers:有 cvs 读权限的用户列表文件。就是一个一维列表。在这个文件中的用户对 cvs只有读权限。

 writers:有 cvs 写权限的用户的列表文件。和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。

 注意:如果用户同时在readers和writers文件存在,则这个用户只有read的权限而没有write的权限。

 创建可以登陆cvs服务的用户及密码,需要创建文件passwd
 vi /home/cvsroot/CVSROOT/passwd
 文件内容如下:
 steven:xxxxx:cvsroot

 其中,xxxxx为密码密文,可以通过在smitty中新建一个临时用户,为其设置口令,然后在/etc/security/passwd中查看获得。也可以使用如下的脚本来得到加密后的密码:

      1 #!/usr/bin/perl
      2 srand (time());
      3 my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
      4 my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
      5 my $plaintext = shift; my $crypttext = crypt ($plaintext, $salt);
      6 print "${crypttext}n";

 7、在Unix/Linux客户端就可以通过以下方式连接到服务器端

  cvs -d :pserver:steven@10.82.66.48:/home/cvsroot login

  提示输入密码,如果提示failed to open //.cvspass for reading: No such file or directory,则touch .cvspass创建一个文件即可。

三、 Unix/Linux环境下CVS的操作说明

(1) 登录CVS Server

%cvs login

CVS password: ******

注: 如果此时提示.cvspass文件不存在,只要手工创建一个即可: %touch .cvspass

(2) 查看帮助

% cvs --help

%cvs –help-options

%cvs –help-commands

(3) 导入项目到服务器
    
格式: cvs import [-m "描述"] 项目名 厂商名 标记
  -m "描述" 为导入操作指定描述信息。实际上 -m 参数是一个公共参数,可以为所有需要描述信息的命令指定描述信息。如果不加这个参数,cvs 会自动启动记事本程序,要求你输入描述信息。参考:如何为 cvs 操作指定描述信息
    
  项目名 cvs 服务器会根据这个名字在 cvs 服务器上创建一个目录来保存所有导入的文件。因此你使用 mydoc/project 这样项目名,将会创建两个目录:mydoc 及其子目录 project。
    
  厂商名 项目厂商的标记。例如 nes 或者 microsoft。
    
  标记 为导入的项目指定一个初始标记。一般使用 init 或者 start,表示项目开始。
  
说明: 将当前目录下的所有文件(包括子目录)导入到 cvs 服务器上指定的目录中(目录名与项目名相同)。每个项目的第一个操作就是导入 cvs 服务器,以后就不需要对同一个项目再次进行这个操作了。
  
操作示例: chdir myproject
cvs import -m "导入项目" myproject nes init

(4) 从服务器更新文档
    
格式: cvs update [-P] [-d]
缩写: cvs up
  -P 删除空目录
  -d 更新子目录下的所有文件。如果别人向项目中添加了新目录,必须加 -d 参数才能够将这些新目录及其中的文件更新到本地。
  
操作示例: cvs update -d

  
说明: 从 cvs 服务器上更新文件到本地,功能与 VSS 的 CheckOut 命令相同。

(5) 检取源代码(将CVS服务器端的源代码下载到本地。则本地上的内容为服务器端的一个拷贝)

cvs co [-r tagname/revision] filename|directory

例:%cvs co -r aiobs61_dev products/aiobs/aiip

%cvs co [–D “1 Dec 2002”/2002-12-1/”1 Dec 20:22”] file1

(6) 增加文件或目录到CVS 库中

$ cvs add filename|directory

(7) 提交文件

%cvs ci [-r revision] [ -m”add new functions”] [filename]

增加文件后,需要再执行cvs ci命令,才能完成永久提交。

增加目录后,则不需要再另外执行cvs ci 命令了。

(8) 更新当前工作目录中的文件

%cvs update [-d] [filename]

-d: 取出新增加的目录 = cvs co

(9) 查看文件历史记录

%cvs log [filename]

将给出文件的所有修改记录,版本信息,修改人, 修改时间及更改说明等。

(10) 比较文件

%cvs diff filename

cvs diff可以用来比较本地工作目录和server上的文件,也可以用来比较文件的两个版本之间的差异,实现的是按行比较。对二进制文件则无效。

%cvs diff –r aiobs filename

比较本地和另外一个分支上(分支Tag为aiobs)的文件差异

%cvs diff -D 2002-1-3 -r cbs_rm ora.sql

比较某个日期与某个分支下的文件差异

(11) 显示文件的当前状态

$cvs status filename

常见三种状态:Up-to-date, Need-patch, Locally Modified

Up-to-date:表示该文件已经与CVS服务器端的最新版本是一致的

Need-patch:表示该文件的本地版本低于服务器端的最新版本,需要从服务器端下载更新的版本

Locally Modified:表示该文件在本地已经做过修改了,但还没有提交到服务器上

(12) 删除文件------分三步

%rm filename (先从工作目录中删除)

%cvs remove filename (从CVS中删除)

%cvs commit filename (永久删除)

(13) 删除目录

首先将目录中的所有文件从cvs中删除

% cd ..

% cvs update –p

-p: 告诉update从工作目录中删除这些空目录

即删除了目录下的所有文件,则CVS认为该目录已经被删除了

(14) 给产品/模块打tag

相当给产品或者模块做一个标签或快照

cvs rtag tagname products/module

或 cvs tag tagname products/module

以上两个命令功能相似,区别在于rtag直接到CVS服务器端为源代码加Tag,而使用cvs tag命令则需要事先把源代码checkout到本地。

(15) 建立分支

cvs rtag –b tagname products/module

或cvs tag –b tagname products/module

建立分支常用于程序bug的跟踪、修复。执行cvs tag/rtag命令时,如果使用-b参数,则表示该Tag是一个分支Tag,用户使用这个Tag可以对程序进行修改和提交。而如(12)中建立的普通Tag则只能做查询用。

四、WinCVS的安装配置请参考http://www.8848software.com/wincvs/

这里已经说的很详细了,不过要注意的是WinCVS登录时所用的用户名是在AIX上创建的,并且要在安装完WinCVS之后创建的才起作用,否则无法登录!

原创粉丝点击