博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cvs 使用规范
阅读量:5480 次
发布时间:2019-06-16

本文共 3338 字,大约阅读时间需要 11 分钟。

环境变量CVSROOT决定了CVS的基本配置,包括验证方式,用户名,cvs服务器ip,cvs服务器商品以及仓库名称。

  • pserver: 目前的cvs服务器的验证方式是使用pserver密码验证。
  • username: 需要预先获得用户名,不同仓库都需要用户名。
  • cooling.ape-tech.com: 目前cvs服务器域名。
  • 2401: cvs服务器端口名。
  • ImRoBot5: cvs仓库名,上一版位于ImRoBot4。
    $ export CVSROOT=:pserver:username@cooling.ape-tech.com:2401/ImRoBot5$ cvs loginpassword:

上传项目。需要注意的是,import一个项目后,用户还需要把项目checkout下来,才可以对其进行修改。

$ mv project project.backup //项目名称不一定要和当前目录同名,之所以取名为project.backup,是因为import后,该目录就没有用处了。如果希望修改文件,需要checkout该项目到另一目录后,才能做。$ cd project.backup //先进入需要import的项目目录。$ cvs import project r1 ape //导入,项目名不需要与当前目录同名,import成功后,这个目录就没有用处了,如果checkout后有问题,再利用这个文件夹中正确的文件做为参考。$ cd .. // 返回上级目录,准备checkout项目。$ mkdir project // 建立项目根目录。$ cd project $ cvs checkout -d project-trunk project // checkout项目主线,主线名称

取项目,简称co。一个项目只在第一次取代码的时候进行此操作,之后更新代码使用update。

// 把project中打上project-r1标签的版本取到本地,目录名为project-r1。$ cvs co -d project-r1 project-r1 head project
// 把project的主线取到本地,目录名为project-trunk。   $ cvs co -d project-trunk project

 cvs co -r egg2-0-8 -d egg2-0-8 egg2

更新项目,简称up。

// 进入项目目录。   $ cd project-trunk// 更新代码。-d参数将新建出仓库中存在的目录。否则cvs是不会主去新建目录的。$ cvs up -d
// 取得特定版本的文件。   $ cvs up -r project-r1 myfile.c// 清除当前版本所属的标签。$ cvs up -A myfile.c

cvs会用一个字母表示当前目录下文件的状态。

? target  //?表示本地有,服务端没有。如果是不需要上传的文件,这是正常状态。? src/Makefilecvs update: Updating .cvs update: Updating examplescvs update: Updating examples/myprojectcvs update: Updating examples/myproject/srccvs update: Updating srcM src/RD-cvs-convention.h // M表示本地文件已经修改过,同服务器上不一致,如果确认修改无误后,应当及时提交。U src/RD-code-convention.h // 本地没有这个文件,但从服务器下载完成。C src/RD-maketool-convention.h // C表示本地文件与服务器文件之间有冲突,通常这种情况发生在,两个以上的人对一个文件的同一版本进行了修改,第一个人上传没有问题,但第二个人上传即会出现该问题。P src/RD-xxx.h //

增加文件或目录。add后还需要执行commit操作,文件才会出现到服务器上。

cvs add myfile.c // 普通文件上传cvs add -kb summary.pdf // 增加二进制文件,通过word,pdf,图片都应以这种方式上传。

提交修改内容。

cvs ci myfile.c

比较本地版本与服务器版本的差别。diff结果可以参见cvs手册,但基本可以理解。

cvs diff myfile.c

cvs上只应保存代码,数据文件,配置文件,xml文档,文档需要的图片。

任何可执行程序都不应上传,word文档最好能写成docbook或doxygen的格式,便于比较。
一个完整的项目import前需要通过make clean删除编译结果; make distclean删除configure生成的Makefile; 删除autom4e目录,其中的宏并不是必须的,但这些宏非常大,影响cvs性能。 为了确保import无误,导入者需要将项目重新取下,检查是否有问题,并有责任上传缺失或错误的文件。

需要上传的项目文件如下:

aclocal.m4  ChangeLog     config.sub  configure.ac  CVS      INSTALL     ltmain.sh    Makefile.in  NEWS    srcAUTHORS     config.guess  configure   COPYING       depcomp  install-sh  Makefile.am  missing      README

cvs没有删除目录的命令,只有删除文件与空目录的命令。因此删除目录只能通过cvs rm结合find命令实现删文件,再结合cvs up -P删除空目录来实现。

自己总结 先在本地删除文件 然后cvs rm   , cvs ci
$ find . -type f | xargs rm; cvs rm$ cvs ci$ cvs up -P

先通过cvs up确保代码是最新的,然后打标签。

$ cvs up   $ cvs tag -R tag-name

冲突是所有版本控制工具不可避免的问题,要解决冲突是一件很麻烦的事情,因此最好的办法是尽量避免冲突的产生。要避免冲突,需要保持一个好的习惯,就是经常update代码,及时commit。 冲突一旦出现后,要解决冲突。可以打开发生冲突的文件。文件内容可能如下:

<<<<<<<<<<   printf("hello1\n");   =================   printf("hello2\n");   >>>>>>>>>>

冲突由两部分组成,<<<<<<<与=======之间,是服务器的内容,======与>>& gt;>>>>>是本地文件的内容。解决冲突,就是要分析,到底应该取舍哪一段代码。如果取舍本地代码,则更新后的文件内 容应该如下:

printf("hello2\n");

分支名规范如下,project-0-number,number从1开始增长。如spider-0-1。

为了容纳多个分支,本地目录需要有一个项目目录project,在该目录下,每个分支都以一个独立的子目录的方式存在。如主线名称为project-trunk,0-1版本名为project-0-1。

// 为当前版本建立分支,分支名为rel-1-0-patches   $ cvs tag -b rel-1-0-patches// 取分支$ cd spider// 取spider中spider-0-1-patches分支到要地目录spider-0-1-patches目录$ cvs co -r spider-0-1-patches -d spider-0-1-patches spider

转载于:https://www.cnblogs.com/wangkangluo1/archive/2011/06/02/2068787.html

你可能感兴趣的文章
sql server(常用)
查看>>
大数据项目实践(四)——之Hive配置
查看>>
Thread类源码解读(1)——如何创建和启动线程
查看>>
Bootstrap清除浮动的实现原理
查看>>
全球首届APMCon,带你给“应用性能”把把脉
查看>>
用户超5亿,三年投10亿,开发者如何抢滩支付宝小程序蓝海?
查看>>
初学vue2.0-组件-文档理解笔记v1.0
查看>>
NG-ZORRO-MOBILE 0.11.9 发布,基于 Angular 7 的 UI 组件
查看>>
我就是一个救火员(DBA救援)
查看>>
Centos7安装Gitlab10.0
查看>>
Windows Server 笔记(六):Active Directory域服务:域控制器安装
查看>>
FTP传输文件(hcl模拟器的操作)
查看>>
discuz X3登录流程分析
查看>>
javascript事件响应
查看>>
通过script标签实现JSONP跨域调用
查看>>
用jQuery实现Ajax
查看>>
***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权
查看>>
上传图片预览
查看>>
vim编辑器
查看>>
程序设计的一些原理
查看>>