第一范文网 - 专业文章范例文档资料分享平台

CVS命令说明

来源:用户分享 时间:2020-06-22 本文由惨绿少年 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

1. CVS环境变量设置

在使用CVS命令时,最好先设置环境变量CVSROOT ,这样能够简化输入的命令内容。

CVSROOT=:pserver:user@server#port:/path/to/cvsroot ? pserver是访问方式,口令认证的意思,这是最常用的方式,其他还有

gserver,kserver,ext

? user是CVS服务器的用户名,

? server是CVS服务器的名称或者IP地址

? /path/to/cvsroot是你的CVS服务器的CVSROOT目录,根据你的CVS服务

器设置做修改或者询问管理员你可以把设置放到你的shell的profile里(.bash_profile,.profile等)这样就不用每次敲一长串命令了

SSH加密口令和数据流的环境变量:

CVSROOT=:ext:user@server#port:/path/to/cvsroot CVS_RSH=ssh

实际上没有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port: /path/to/cvsroot来访问,而且它将忽略CVSROOT环境变量 ,也许你会笑我只有疯子才这么用,不过,cvs可以把每次使用的命令参数放到一个文件中,所以在~/.cvsrc中加入cvs -d :pserver:user@server#port:/path/to/cvsroot即可,它最大的好处是修改了立刻生效,而且它的优先级高于CVSROOT环境变量,到时候不要傻乎乎地来问我,我的环境变量真么不起作用了。

2. CVS仓库初始化

CVS版本库的初始化。 cvs init

3. 一个项目的首次导入

cvs import -m \执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下 vender_tag: 开发商标记 release_tag: 版本发布标记

4. 登录CVS服务器

$cvs login

这时候cvs会问你口令,请把你在CVS服务器上的口令敲进去。如果没有任何错误信息,恭喜你,成功了!成功登录后将建立一个~/.cvspass文件,保存你的口令,以后就不用输入口令了,也可以把你的口令设置到CVSROOT环境变量中。

CVSROOT=:pserver:user:password@server#port:/path/to/cvsroot

5. cvs命令格式

cvs [global_opts] command [command_opts] [command_args] ? Global options 属于左边cvs的,是全局的 ? command_opts 属于左边command的,是局部的

cvs --help-commands查看命令列表

cvs -H command/cvs -help command 查看该命令的选项 注:

如果你每次使用一些命令都带同样的参数的话,可以把它们放到~/.cvsrc文件中去 update -c diff -c add -kb cvs -Q

cvs global-option comand comand-option arguments

6. CVS的日常使用

CVS使用流程

a. checkout 当本地没有working copy时使用 b. staus 检查服务器上是否有新版本 c. update 如果有,则用update同步文件 d. 做你自己的修改,并保证正确 e. update 看是否有人修改了你的文件 f. 如果有冲突,合并冲突

g. commit 提交你的修改,如果因为又有人提交修改而失败,回到e步 h. 回到b步 1)

导出仓库中代码到本地工作目录

cvs checkout [-d dir ]module_name

module_name可以暂时理解为目录名,它会在本地但前目录下建立module_name目录,再把服务器上说有module_name目录下的文件copy到本地module_name目录下。如果指定-d,则copy到本地dir目录。

注意:第一次checkout后,就不要再通过cvs checkout来同步文件了,而是要进入该目录下进行具体文件的版本同步(添加,修改,删除)操作。 2)

同步本地文件

cvs update filename

将本地文件同步到最新的版本:不指定文件名,cvs将同步所有子目录下的文件。 最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成\先同步 后修改\的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS库中,CVS会通知你文件冲突。

<<<<<<< filename 你文件上的内容 服务器上文件的内容

>;>;>;>;>;>;>; latest revision number in the repository

由你确认冲突内容的取舍。也可以多人协商解决,修改完成后去掉文件中的冲突标志 conflict:多人修改同一文件的同一区域这就叫冲突,它必须由人来解决,CVS不处理冲突,它只是告诉你存才冲突 3)

提交本地修改后的文件到CVS库

cvs commit -m \

注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m \而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。

修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以下命令可以允许你修改某个文件某个版本的注释:

cvs admin -m 1.3:\ 4)

查看状态

cvs status filename 状态报告,类似这样:

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: 表明你曾经修改该文件,但是偏偏有个不识相的也修改了这个

文件,而且还提交了!

5) 6)

添加文件和目录

cvs add new_file_name cvs add -kb new_file_name cvs add dir_name

CVS一般只处理文本文件,它会扩展keyword(宏)并转换行结束符。 对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项,否则有可能出现文件被破坏的情况然后确认修改并注释

cvs ci -m \ 7)

删除文件

将某个源文件物理删除后 cvs remove file_name 然后确认修改并注释

cvs ci -m \

注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co; remove=>rm; 8)

删除空目录 cvs update –P 9)

修改文件名

cvs里没有cvs move或cvs rename,因为这两个操作是先cvs remove old_file_name,然后cvs add new_file_name实现的。

查看修改历史和注释信息 cvs log file_name

10) 目录结构同步

如果在你checkout后,有人添加了新的文件或目录,你需要把他们取出来 cvs update -d

11) 放弃本地的修改(undo)

? 如果修改来了本地文件,不想提交,想重新取新文件

cvs update -C filename 它会先把你的本地文件改名

建议:大家把checkout的文件缺省为readonly,把\添加到~/.cvsrc文件中。 这样,你每次修改一个文件前,先cvs edit filename,提交后文件又变成readonly, 如果你想放弃本地的修改,则 cvs unedit filename, 它会undo,而且文件又变成readonly

12) 恢复到旧版本

cvs update -j1.20 -j1.15 filenames

1.20时当前版本号,注意顺序不要反了,记住要commit,为了保证是前版本号,最好先lock

注意:cvs update -r1.15 filename,这里的-r不是版本号的意思,是给文件加了一个叫1.15的sticky tag

如果不小心已经加成STICK TAG的话:用cvs update -A 解决

13) 文件比较

cvs diff -c filename

cvs diff -c -r1.8 -r 1.5 filename

14) 锁定与解锁文件

为保证串行的修改文件 cvs admin -l files cvs admin -u files

15) CVS宏/keyword

CVS缺省会对文件进行keyword(宏)替换,在文件中加入这些关键字是个良好的工作习惯。

? $Id$ 关键字是用文件名、版本、时间、作者 及代码性质替换,如果使用-l选项

取出,在Exp后面会加上登录用户的名称。

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育CVS命令说明 全文阅读和word下载服务。

CVS命令说明 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1093333.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top