bbs cvs常用操作

 #export CVSROOT=:pserver: bbsdev@bbs.tju.edu.cn:/cvs
#cvs login

#1、导出整个项目到本地
cvs -z9 co tjubbs

#2、导出不包含cvs目录的项目代码
cvs export -r release_version project_name                  //导出标签(-r)为release_version的源码
cvs export -D 20120703 project_name                         //导出不迟于(-D)日期更新的项目源码
cvs export -D now project_name                                 //导出不迟于今日更新的代码

#3、更新cvs代码
cvs -n update -dP                                                   //这将为你显示将被修改的东西,而实际上并未修改
cvs update –dP                                                      // 执行实际的更新

常用:
cvs ci -m "简单说明" filename   —— 提交,简单说明.
cvs up filename/dirname           —— 更新本地文件到最新版本

经过测试确定目前服务器的cvs的根目录是:/home/ cvs,可以从中迁出两个模块test和tjubbs。
练习:
1、创建新的项目,添加到cvs管理;
cvs import -m "log msg" projectname vendortag releasetag

2、从cvs版本库中删除文件
(1)在本地删除文件;(2)cvs remove;(3)cvs ci -m ""
3、为发行版添加 tag
(1) 为一个文件添加tag
cvs tag rel-1-0 test.c
(2)为目录下所有文件添加tag
cvs tag rel-1-0 .(当前目录)

4、为项目文件添加标记,如在cvstest中运行
cvs tag rel-1-0
所有文件,不论当前版本号是否一样,均被标记为rel-1-0

5、创建新分支,从标记为rel-1-0的主干代码创建新分支, 这样即使主干代码在合并时发生了问题,可以恢复到这个tag上
cvs rtag -b rel-1-0 rel-1-0-patches cvstest

6、进入到新分支的方法包括
(1)从服务器check一份新的带tag的代码
cvs checkout -r rel-1-0-patches cvstest
(2)将主干代码update成新的分支代码,更新时指定标记
cvs update -r rel-1-0-patches cvstest

注意:使用cvs status -v 查看文件的状态,
文件的revision可能不一样,但是只要分支标签一样, 说明处于同一分支之中

7、合并一整个分支
(1)修改check下来的分支代码( 自己创建的目录cvstest_branch中)1.c, 然后提交该代码:
cvs ci -m "test" 1.c
提示信息:new version:1.2.2.1; previous revision:1.2
说明在分支上修改的代码被提交到服务器的库的分支上了

(2)将服务器上分支代码变更合并到本地的主干代码工作副本( 自己创建的目录cvstest)之中,执行, 其中j是join的意思,将分支中的代码join过来:
cvs update -j rel-1-0-patches 1.c
提示信息:Merging differences between 1.2 and 1.2.2.1 into 1.c
查看主干代码工作副本1.c,能够看到分支代码中的修改。

(3) 现在是在本地主干代码工作副本中将新分支的修改merge过来了 ,但是并没有提交到服务器的主干代码, 因此需要将当前的merge提交到服务器的库:
cvs ci -m "including rel-1-0-patches" 1.c
提示信息:new revision:1.3;previous revision:1.2,根据上面记录的信息, 原主干代码中1.c的revision为:1.2, 提交后版本升级到1.3了。

 
8、从一个分支多次合并到主干
(1)如果一直使用:cvs update -j rel-1-0-patches 1.c的话,可能会出现意想不到的后果, cvs提供了只把未被合并分支的改变合并进主干,这时使用两个 -j 参数,将从第一个版本到第二个版本的变化合并进主干中。如, 我修改了cvstest_branch(分支rel-1-0- patches)下的1.c,提交服务器库,版本从1.2.2. 2变成最新的1.2.2.3版,本地主干代码工作副本,1.2. 2.2已经被合并过了,因此只需要将从1.2.2. 2到最新版的变化合并过来就可以了,使用如下命令:

cvs update -j 1.2.2.2 -j rel-1-0-patches 1.c

提示主干的1.c版本从1.3升级至1.4。

(2)使用此方法需要制定版本号, 也可以最后完成合并的日期来区分版本:
cvs update -j rel-1-0-patches:yesterday -j rel-1-0-patches 1.c
即将昨天最后完成合并到最新的变化合并进主干代码

(3)同样可以再每次合并进主干后加一个标签给rel-1-0- patches分支,可以使用该分支作为合并的版本
cvs update -j merged_from_rel-1-0-patches- to-trunk -j rel-1-0-patches 1.c


9、合并任何两个版本的差异

(1)把任意两个不同的版本的差异合并进工作副本,如下将1. 4版本恢复到1.3版本:
cvs update -j 1.4 -j 1.3 1.c
       如果要在多文件之间完成版本的合并操作, 则要区分每个文件的不同版本的号, 因此转而使用符号标签来标记版本。

(2)两个-j操作同样能恢复增加或删除的文件,如2.c是1. 1版本的,删除后变成了一个dead版本1.2, 因此可以通过将1.2版本恢复至1.1来恢复文件。
cvs update -j 1.2 -j 1.1 2.c


10、合并可以添加或删除文件
如果文件中包含关键字的解决方法,见链接:


求实BBS服务器CVS操作实录:
1、可以为tjubbs单独的文件夹创建分支( 因为主要修改在nju09和src上, 可以先测试nju09创建分支的效果), 首先为nju09的所有代码打上稳定版本标签:stable- 1-0(如果以后从分支往主干上合并时出现了问题的话, 可以直接使用stable-1-0版本来生成程序)
cvs tag nju09-stable-1-0 .

2、基于nju09的稳定版本nju09-stable-1- 0创建新分支,nju09--branch-1-0
cvs rtag -b nju09-branch-1-0 tjubbs/nju09

3、将主干代码切换到分支代码,在nju09目录中
cvs update -r nju09-branch-1-0

4、常用辅助操作:
切换回主干代码:cvs up -P -A
删除标记:cvs tag -d nju09-stable-1-0 tjubbs,将tjubss的nju09-stable-1- 0标记删除
删除分支:cvs rtag -d -B nju09-stable-1-0 tjubbs

5、本机将主干代码更新至分支版本nju09-branch- 1-0
进入nju09目录下:cvs update -j nju09-branch-1-0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值