王朝网络
分享
 
 
 

CVS 简介

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

* 什么是 cvs?

cvs 是一个版本控制系统. 什么是版本控制系统呢?

简单的说, 他可以记录程式码修改的过程, 有一个完整的 history.

辟如说, 当你在修改程式码的时候, 不小心写出了一

个 bug,

但是你可能很久以后才发现多出了这个 bug, 这个时候,

cvs 就能很

有效的帮助你, 找出到底是在哪一次的修改中, 出现了这

个 bug.

或许你会说, 那我每次都把程式码存起来, tar 起来

不就好了,

当然, 你是可以这么做, 但是这太浪费空间了! cvs 在版

本更改间,

只储存他们的 diff 档, 这样可以很有效的省下很多空间

.

再另一个场合里头, 更能显示出 cvs 的好处 -- 多人

一起发展

软体的时候. cvs 支援 remote access, user 并可以对他

要修改的

档案加上 edit 的 flag, 让别人知道他要修改这个档案了

. 然而,

一个较大的发展团队, 一定还会需要一个 mailing list,

用来沟通.

因为, cvs 只是一个管理 project 程式码的工具, 他并不

扮演沟通

的角色.

* 名词

repository: 意思是仓库. 在 cvs 里头, 就是你真正

存放版本

历史的地方.

pserver : 这是 cvs 用来接受 remote 的 cvs command

用的.

cvs 有两种模式, 一种是 local, 一种

是 remote.

cvsroot : 当你使用 cvs 的时候, 必须设定 CVSROOT

这个环

境变数, 或是用 -d 这个选项来指定.

* 简单的例子

- local cvs

现在我正在写 cvs 的文件, 我希望用 cvs 来维护这

些文件.

首先, 我定了一个 cvs root, 当然, 你得 mkdir

setenv CVSROOT "/home/clkao/cvsroot/"

cvs init

cvs init 会帮你把 cvsroot 初始化, 至于初始化哪

些东西, 后面再说.

接著, 开一个要放文件的目录

mkdir /home/clkao/cvsroot/cvsdoc

cd /home/clkao/work

cvs checkout cvsdoc

你会看到下面的讯息:

cvs checkout: Updating cvsdoc

cvs checkout 会把目前最新的版本送到你现在的目录

下, 当你下了

上面的指令后, cvs 会帮你建立 cvsdoc 这个目录.

记住, 不要自己 mkdir /home/clkao/work/cvsdoc,

每个 cvs 工作目录

都还会有一些其他让 cvs 参考的资讯.

接著, 进入 cvsdoc 这个目录, 编辑 cvs.doc 这个档

案, 写了这些有的

没有的.

cvs add cvs.txt

cvs commit -m "Initial revision."

cvs add 会把 cvs.txt 加入 cvs 在维护的 file list.

cvs commit 会把现在目录下所有的东西(cvs.txt) 送

到 repository.

-m 表示这次 commit 的 log message.

现在修改一下 cvs.txt 吧, 就像我现在又继续编辑,

继续把新

的内容加入 cvs.txt, 并且, 在档案的最上面加上 \$Id\$

的字样.

改完之后, 再 commit 一次. (注意, 没有 '\' 喔,

这里 slash 的

目的是避免 cvs 也把这边的 Id 代换掉.

cvs commit -m "Adding new stuff."

cvs log cvs.txt

你会看到每次改的时候, 你加进去的 message. 想想

, 这对写程式,

发展大的 project 的人来说, 是不是一个很棒的工具

呢?

cvs diff -r 1.1 -r 1.2 cvs.txt

这样会显示 1.1 和 1.2 版的 diff, 原本有 1.1 版

的人, 就只需要用

这个 patch 就可以了!

再编辑 cvs.txt, 有没有发现最上面的 Id 变长了?

加了一代串文字,

这显示这个版本的一些相关资讯.

- remote cvs

可是, 我现在要做的是一个大的专案啊, 上面讲的太

小儿科了,

而且我要让好多人一起发展这个专案呢!

这里我举现在正要进行的 xcin-2.5 cvs 建立和使用

的过程当作例子.

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 /export

pserver

mkdir /export

adduser anoncvs, 这是要给 anonymous cvs 用的.

group 为 nogroup.

新加一个 xcin 的 group.

adduser 参与 xcin 的帐号, 当然, 把他们的 group

设为 xcin

cvs -d /export init

cd /tmp/xcin-alpha, 这是原来已经存在的版本, 现

在要把它放进 cvs 里头.

cvs import xcin-2.5 RXP XCIN_2_5_ALPHA

如此就会把 xcin-alpha 下的东西 import 进 /export/xcin-

2.5 了.

后面的 RXP 是 vendor tag, XCIN_2_5_ALPHA 是 release

tag, tag

的用处很大, 不过我们后面再说.

注意, 一个 user 要从远端 access 的档案, 他必须

再这里拥有适当的权限.

譬如说, /export/xcin-2.5 的 group 应该是 xcin,

且 group writable(

这是 cvs default).

现在试试看从远端存取 cvs 维护的档案.

首先, 在你的机器上建立一个工作目录, 譬如是 /home/clkao/

work

cd /home/clkao/work

cvs -d ":pserver:clkao@cirx.org:/export" login

会出现 prompt 问你 password, 打进去.

cirx.org 是 repository 所在的机器.

当你下了 cvs login 的指令后, 这组 cvsroot 和 encrypted

passwd

会被存在 ~/.cvspass 里头.

cvs -d ":pserver:clkao@cirx.org:/export" checkout

xcin-2.5

这样就会把整套 cvs 所 maintain 的东西 checkout

出来在你的

机器上.

cd xcin-2.5

东看看, 西看看, 发现了一个 bug. 修改好了之后,

就 commit 出去吧.

cvs commit -m "Minor bug fix."

cvs 会搜寻所有他 maintain 的 entry, 看看哪些需

要 commit 的.

这样就大概有一个 cvs 的雏形了! :) 更精采的还在

后头呢!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有