免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 PHP CVS介绍
最近访问板块 发新帖
查看: 1576 | 回复: 1
打印 上一主题 下一主题

CVS介绍 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-03 13:44 |只看该作者 |倒序浏览
首先CVS不是一个开发环境,它只实现开发过程中的源文件共享和同步问题。
一个最简单的工作流程如下:
1 CVS CHECKOUT: 将源文件包同步到开发目录下;
2 对其中的文件进行修改;
3 将修改COMMIT到源文件包中,实现一次版本的升级。

当然,CVS最重要的特性是能让你了解开发过程中谁,何时对那些源文件进行了什么修

一下是一个CVS系统简介

作者: 高嘉良 (Chia-liang Kao) <clkao@cirx.org>;

* 什麼是 cvs?

cvs 是一個版本控制系統. 什麼是版本控制系統呢? 簡單的說, 他可以記錄程式碼修改
的過程, 有一個完整的 history.

闢如說, 當你在修改程式碼的時候, 不小心寫出了一個 bug, 但是你可能很久以後才發
現多出了這個 bug, 這個時候, cvs 就能很
有效的幫助你, 找出到底是在哪一次的修改中, 出現了這個 bug.或許你會說, 那我每
次都把程式碼存起來, tar 起來不就好了,
當然, 你是可以這麼做, 但是這太浪費空間了! cvs 在版本更改間, 只儲存他們的
diff 檔, 這樣可以很有效的省下很多空間.

再另一個場合裡頭, 更能顯示出 cvs 的好處 -- 多人一起發展軟體的時候. cvs 支援
remote access, user 並可以對他要修改的
檔案加上 edit 的 flag, 讓別人知道他要修改這個檔案了. 然而, 一個較大的發展團
隊, 一定還會需要一個 mailing list, 用來溝通.因為, cvs 只是一個管理 project
程式碼的工具, 他並不扮演溝通的角色.

* 名詞

repository: 意思是倉庫. 在 cvs 裡頭, 就是你真正存放版本歷史的地方. CVS把一份
由多个文件组成的软件按包存储,并记录每个文件的修改信息。

pserver : 這是 cvs 用來接受 remote 的 cvs command 用的用户认证服务。cvs 有兩
種模式, 一種是 local, 一種是 remote.

cvsroot : 當你使用 cvs 的時候, 必須設定 CVSROOT 這個環境變數, 或是用 -d 這個
選項來指定.

……………………

安装过程如下:

http://www.cyclic.com
DOWN源文件

$ ./configure
$ make
(run the regression tests if desired)
$ make install
(create a repository if you don't already have one)

设置CVSROOT环境变量:
bash:
CVSROOT=/src/master; export CVSROOT
csh:
setenv CVSROOT /src/master

/src/master为CVS存放软件包的根目录。

——————————————————————————————————--
启动远程访问认证的PSERVER服务。
su root
檢查 /etc/services 有沒有這兩行, 沒有請加入:

cvspserver 2401/tcp #CVS network server
cvspserver 2401/udp #CVS network server

再 /etc/inetd.conf 加入:

cvspserver stream tcp nowait root \
/usr/bin/cvs cvs -b /usr/bin --allow-root /src/master pserver

mkdir /src/master
——————————————————————————————
给远程用户添加帐号
adduser anoncvs, 這是要給 anonymous cvs 用的. group 為 nogroup.

新加一個dev的group.

adduser 參與 dev 的帳號, 當然, 把他們的 group 設為 dev

CVS的用户帐号和UNIX及NT的用户帐号无关,CVS用户帐号都保存在$CVSROOT中的passwd
readers writers目录下
格式:
userid:encryptedpasswd:map Unix userid

一下是一个生成加密PASSWD的perl脚本:

/////////
#!/usr/bin/perl

srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);

print "${crypttext}\n";
//////////////

将这个小程序设置为可执行:cryptout.pl:

ls -l ./cryptout.pl

-rwxr-xr-x 1 root root 265 Jun 14 20:41 /usr/local/bin/cryptout.pl
floss$ cryptout.pl "ASSWORD1"
sB3A79YDX5L4s

就生成了加密的密码"ASSWORD1"字符串

按照
userid:encryptedpasswd:map Unix userid格式加到PASSWD文件里。readers writers
都是userid的列表。

passwd文件样例:
anoncvs:sB3A79YDX5L4s:anoncvs
acvsreader:sB3A79YDX5L4s:che
cheche:sB3A79YDX5L4s:che
acvswriter:sB3A79YDX5L4s:che

readers文件样例:
acvsreader
anoncvs

writers文件样例:
cheche
acvswriter


CVS SERVER的安装应该是没有什么问题了, 我下一步主要是研究WINCVS的使用和如何实
现CVS的WEB访问。实现客户端非常方便的访问。

论坛徽章:
0
2 [报告]
发表于 2003-06-05 08:18 |只看该作者

CVS介绍

美女:
你很强!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP