分享
 
 
 

CVS简介

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

* 什麽是 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 "server:clkao@cirx.org:/export" login

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

cirx.org 是 repository 所在的机器.

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

会被存在 ~/.cvspass 里头.

cvs -d "server: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- 王朝網路 版權所有