CVS配置和使用(Asianux2.0 linux客户端)

 /*这个操作我根据网络文章简单配置了一下,没有所有的操作都验证。*/

 

以下操作在客户端目录cvstestcvs用户进行。

1CVSROOT: 
$export
 CVSROOT=:pserver:laser@the_server_name:/home/cvsroot

你可以把行放到你的shellprofile里(.bash_profile.profile等)

这样就不用次敲一串命令了

2CVS器: 
$cvs
 login这时cvs你口令,把你在CVS器上的口令敲成功登后将在你的家目建立一个.cvspass文件,以后就不用入口令了.好,客置完成,简单. 

3Import操作

入到你的已有目的目,比如叫cvstest: 
$cd
  cvstest
运行命令: 

$cvs
 import -m "this is a cvstest project" cvsroot     v_0_0_1     start 
明:import 是cvs的命令之一,表示向cvs仓库输目文件. 
   -m参数后面的字串是描述文本,随便写些有意西,如果不加-m参数,那cvs会自运行一个编辑器(一般是vi,但是可以通修改EDITOR来改成你喜用的编辑器.)入信息, 
   cvsroot 是目名称(实际上是仓库名,在CVS器上会存在以个名字命名的仓库里.) 
   v_0_0_1个分支的总标记.没用(或曰不常用.) 
   start 是次 import 标识文件的次的标记,没用.
这样就建立了一个CVS仓库。将cvstest目录中的所有文件importcvsroot目录中。

4Checkout操作

$cvs checkout cvsroot
cvsroot仓库索出目的源文件. 
如果你已一次checkout了,那不需要重新checkout,只需要更新一把就行了: 
$cvs
 update

又或者你不想直接更新,只是想看看有没有更新的西,那: 
$cvs
 status
这时后会打印出一串状态报告(你可能需要用less这样的命令分页显示,或者定向到一个

出文件里慢慢看.),对项目中的个文件有一份态报告,这样
================================================
 
File:
 foo.c             Status: Up-to-date 
   Working revision:      1.1.1 .1 'Some Date' 
   Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v 
   Sticky Tag:          (none) 
   Sticky Date:         (none) 
   Sticky Options:      (none) 
里最重要的就是 Status 共可能有四: 
Up-to-date
:表明你要到的文件是最新的. 
Locally
 Modified:表明你曾修改过该文件,但没有提交,你的版本比仓库里的新. 
Needing
 Patch:表明有个哥修改过该文件并且已提交了!你的版本比仓库里的旧. 
Needs
 Merge:表明你曾修改文件,但是偏偏有个不相的也修改了个文件,而且提交给仓库! 

5Commit操作

某个文件做了修改,比如改了ceo.c,加了一行程序:

printf("where can I find VC to cheat!"); 
改完之后你要把修改提交给仓库,用命令: 
$cvs
 commit -m "add a complain" ceo.c 
或者就是: 
$cvs
 commit -m "worry about money" 
cvs帮你检查哪个文件需要提交.

6.工作之前版本检查

当我始干活的候,可能我先: 
$cvs
 status 
这时候我会看到: 
===============================================
 
File:
 ceo.c             Status: Needing Patch 
   Working revision:      1.1.1 .1 'Some Date' 
   Repository revision: 1.2     /home/cvsroot/nastaq/ceo.c,v 
   Sticky Tag:          (none) 
   Sticky Date:         (none) 
   Sticky Options:      (none) 
于是我知道有人改了ceo.c,于是我就: 
$cvs
 update ceo.c 
或者干脆: 
$cvs
 update 
ceo.c个文件更新最新版本,然后再干活.然后提交. 

7.版本冲突管理(代码增加)

如果你修改了coo.c,加了一行 puts("how about another kind of bragging?"); 
并且提交了,但是这时候我已 $cvs status 了,就是我不知道你的修改. 
而我加了一行printf("You must shamelessly and seems knowingness to act as a coo"); 
并且乎乎地提交: 
$cvs
 commit coo.c 
这时候,CVS会告我 
cvs
 commit: Examing . 
cvs server: Up-to-date check failed for 'coo.c' 
cvs
 [server aborted]: correct above error first! 
于是我知道有在我修改文件的当口做了提交,于是我 
$cvs
 update 
这时cvs告: 
RCS
 file: /home/cvsroot/nasdaq/coo.c,v 
retrieving
 revision   1.1.1 .1 
retrieving
 revision 1.2 
Merging
 differences between 1.1.1.1 and 1.2 into coo.c 
rcsmerge:
 warning: conflicts during merge 
cvs
 update: conflicts found in coo.c 
C
 coo.c 
coo.c有版本冲突,于是我编辑coo.c这时一般文件里看起来象这样: 
  ... 
printf("You must shamelessly and seems knowingness to act as a coo"); 
<<<<<<<
 foo.c 
=======
 
...
 
  puts("how about another kind of bragging?"); 
>>>>>>>
 1.2 
...
 
于是我把上面改成: 
printf("You
 must shamelessly and seems knowingness to act as a coo"); 
puts("how
 about another kind of bragging?"); 
然后 
$cvs
 commit -m "merged" coo.c 
于是下回你再更新的候就有新的补钉要打...如此往,直到完成所有修改. 

8版本冲突管理(代码删除)
过这里有一些要注意的地方就是除程序,如果你掉一行你可能没有用的程序 
puts("to
 be honest"); 而我不想除(因我有用),而我不知情地直接: 
$cvs
 update 
我的行程序也完蛋了,所以里我要注意所有开发协调,千万不要 
删东西,大不了用 
#if
    0 
#endif
 
宏定义对括起来.在要删东西,那最好先标记一个版本: 
$cvs
 tag v_0_0_1 
然后你可以布并除你自己的工作目个版本的文件(注意:不是仓库里的.): 
$cvs
 release -d nasdaq 
然后你再生成一个新分支: 
$cvs
 rtag -b -r v_0_0_1 v_0_0_1_1 nasdaq 
然后再建立v_0_0_1_1的分支 
$cvs
 checkout -r v_0_0_1_1 nasdaq 
编辑并修改个分支的文件,这样的做法比好. 
有一些命令,比如要增加一个文件 garbage_china_concept_stocks_list: 
$cvs
 add garbage_china_concept_stocks_list 
然后要: 
$cvs
 commit  garbage_china_concert_stocks_list 
看起来有点象数据里的事?的确是这样CVS维护着一个本地的参考文件(在CVS/Entries里),
这样提交的候就可以一次地把所有改放到服器端,这样也更安全. 
,如果想除文件 bankrupted_web_site: 
$rm
 bankrupted_web_site 
$cvs
 remove bankrupted_web_site 
$cvs
 commit bankrupted_web_site 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值