windowsCVS使用指南.docx

上传人:b****5 文档编号:12026582 上传时间:2023-04-16 格式:DOCX 页数:19 大小:105.34KB
下载 相关 举报
windowsCVS使用指南.docx_第1页
第1页 / 共19页
windowsCVS使用指南.docx_第2页
第2页 / 共19页
windowsCVS使用指南.docx_第3页
第3页 / 共19页
windowsCVS使用指南.docx_第4页
第4页 / 共19页
windowsCVS使用指南.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

windowsCVS使用指南.docx

《windowsCVS使用指南.docx》由会员分享,可在线阅读,更多相关《windowsCVS使用指南.docx(19页珍藏版)》请在冰豆网上搜索。

windowsCVS使用指南.docx

windowsCVS使用指南

CVS使用指南

 

北京天元创新科技有限公司

本文档属北京天元创新科技有限公司所有

未经允许,不可全部或部分发表、复制或使用于任何目的。

文件修改记录

修改日期

版本号

修改内容

修改人

审核人

批准人/日期

2008-2-19

V1.00

文档初建

冯红伟

目录

1引言1

1.1目的1

1.2范围1

1.3术语及缩略语1

2服务器的安装和配置1

2.1安装CVSNT服务器1

2.2配置CVSNT服务器1

3客户端的安装和配置2

3.1Windows环境的安装和配置2

3.2UNIX环境的安装和配置3

4WinCvs的基本操作3

5CVS的基本命令3

5.1登录CVS服务器3

5.2创建新模块3

5.3从CVS获取新模块4

5.4从CVS获取别人的修改4

5.5向CVS提交你的修改4

5.6锁定检出5

5.7添加文件或目录5

5.7.1添加文本文件5

5.7.2添加二进制文件5

5.7.3恢复二进制文件当文本文件加入的情况5

5.7.4添加目录5

5.8删除文件和目录5

5.8.1删除文件6

5.8.2删除目录6

5.9访问被删除的文件和目录6

5.10查看修改6

5.10.1查看所有版本的日志6

5.10.2查看某个文件的状态6

5.10.3查看某个文件的历史6

5.11查看区别6

5.12恢复旧版本6

5.13释放本地的工作拷贝7

5.14添加标签7

5.15移动文件和重命名7

5.16创建分支7

5.17访问分支8

5.18合并到主分支8

5.19查看当前分支8

6运用WinCvs进行系统管理8

6.1建立管理环境8

6.2添加和删除用户9

6.3分配权限10

6.4配置modules文件10

6.5CVS仓库的备份和恢复11

6.5.1备份11

6.5.2恢复11

6.6版本编号值11

6.7cvs异常锁定11

7不同用户需要关注的内容11

7.1配置管理员11

7.2GUI开发人员11

7.3后台开发人员12

1引言

1.1目的

为CVS的安装和使用提供参考。

1.2范围

本文档适用于公司的所有软件项目。

1.3术语及缩略语

基线版本:

是一个项目中所有的源代码、文档、数据文件的某种版本组合,每个文件只取唯一一个版本(如果需要该文件)或者一个版本都不取(如果不需要该文件)。

工作拷贝:

是每个开发人员在开发过程中拥有一个独立于其他开发人员的部分源代码拷贝,这些拷贝建立在本地的开发目录中。

Checkout--检出(co):

一般用于描述从库中将一个整个模块的首次导出。

Commit--提交(ci):

将你的修改提交到库中。

Export--输出:

指从库中将一个模块全部导出,但没有任何CVS管理文件。

输出的模块没有CVS控制。

Import--输入:

通常指通过提交一整个目录结构创建一个新的模块的过程

Module--模块:

一个目录层。

一个软件工程通常作为一单一模块存放在库

Release--发行版本:

整个产品的版本

Revision--修订版:

单个文件的版本

Tag--标签:

在一个开发的特定期对一个文件集给定的符号名

Update--更新(up):

从库中取出其他人的修改。

只更新本地的拷贝。

2服务器的安装和配置

2.1安装CVSNT服务器

1.使用administrator登陆到Server机器上;

2.安装CVSNT,选择FullInstall,其它按照默认方式安装;安装完毕后可以在服务控制器中发现多了2个服务:

cvsnt与cvslocking;

3.检查安装程序是否将CVS安装路径设置到系统的Path环境变量当中,否则手动设定。

2.2配置CVSNT服务器

1.运行启动=>程序=>CVSNT=>ServiceControlPanel;

2.停止CVSService和CVSLockService两个服务;

3.选择Repository页面,选中RepositoryPrefix选项,单击Browse按钮,选择仓库(配置数据库)的存放位置,如“D:

/cvs_db”;

4.点按Add按钮,输入项目数据的存储位置,如“D:

/cvs_db/MobileNMS”确认,OK,Yes,这时会在D:

/cvs_db/MobileNMS下面建立CVSRoot目录,这是CVS默认的管理目录(默认模块)。

如果报错,那是系统Path路径未设置正确;

5.选择Advanced页面,勾上Uselocalusersforpserver,在Temporary栏选择一个目录作为临时目录,如“D:

/cvs_temp”,确认,OK;

6.点按【应用】按钮;(必须);

7.重新启动CVSService和CVSLockService两个服务;

8.确定,退出。

3客户端的安装和配置

3.1Windows环境的安装和配置

1.安装WinCvs和Python;

2.运行WinCvs,选择Admin=>Preference=>General页面,按照下图输入即可:

[注意]:

Path部分的格式是Unix路径格式,它指的是CVSNT中设置的仓库目录。

3.选择Globals页面,去掉Checkoutread-only选项。

4.选择CVS页面,选择一个目录作为Home目录。

Home路径是设置密码等文件的存放位置,必须指定,否则在登陆时,WinCVS也要弹出设置框。

5.选择WinCvs页面,选择编辑器,通常使用UltraEdit比较方便。

6.单击确定。

7.选择Admin=>Login,输入密码后,如果返回“*****CVSexitednormallywithcode0*****”表示连接成功,否则需要检查一下设置是否正确。

[注]:

如果需要在cmd中执行CVS命令操作,需要设置CVSROOT和HOME两个环境变量,其值与WinCvs对应项相同。

3.2UNIX环境的安装和配置

1.通过终端工具登陆到UNIX的工作目录;

2.运行CVS命令,如果返回CVS命令的用法,表示该系统已经安装了CVS,否则需要以系统管理员的身份安装CVS软件;

3.设置CVSROOT环境变量:

临时配置:

$setenvCVSROOT:

pserver:

fjqin@192.168.1.31:

/MobileNMS

永久配置(需要下次登陆才生效):

用编辑器打开$HOME/.cshrc文件,在文末添加:

setenvCVSROOT:

pserver:

fjqin@192.168.1.31:

/MobileNMS;

4.验证环境变量是否正确:

$echo$CVSROOT;

5.测试远程访问:

$cvslogin,根据提示输入密码以后,没有任何信息显示,则测试成功。

4WinCvs的基本操作

请参考《wincvs日常使用指南》:

5CVS的基本命令

5.1登录CVS服务器

通过CVSROOT登录:

$cvslogin。

使用其它用户名登录:

$cvs-d:

pserver:

yourname@cvsserver_ip:

repository_pathlogin

5.2创建新模块

进入模块所在目录,如/myproject/src,用:

$cd/myproject/src

$cvsimport-m"writesomecommentshere"MGRyournameRELEASE-TAG

来创建新模块,在引入的时候会将/myproject/src及其子目录一起引入。

参数MGR的作用是在$CVSROOT目录下建立的存放源文件的目录名,RELEASE-TAG代表发布标签。

5.3从CVS获取新模块

检出模块MGR的最新版本使用:

$cvscheckoutmodule_name。

检出其它特定版本需要指定参数,详细情况通过$cvscheckout–help来获得。

5.4从CVS获取别人的修改

✧将文件同步到最新的版本:

$cvsupdate

✧不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步:

$cvsupdatedir_name。

✧获得缺失的目录(其它人在仓库中新建的):

$cvsupdate–ddir_name

✧去掉空目录:

$cvsupdate–Pdir_name

最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步后修改”的习惯。

如果你修改过程中,有其他人修改并commit到了CVS库中,CVS会通知你文件冲突,并自动将冲突部分用

>>>>>>

contentoncvsserver

<<<<<<

contentinyourfile

>>>>>>

标记出来,由你确认冲突内容的取舍。

版本冲突一般是在多个人修改一个文件造成的,CVS不能自动解决。

5.5向CVS提交你的修改

确认修改写入到CVS库里:

$cvscommit-m"writesomecommentshere"file_name

[注意]:

CVS的很多动作都是通过cvscommit进行最后确认并修改的,最好每次只修改一个文件。

在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。

如果不用写-m"comments"而直接确认`cvscommitfile_name`的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。

修改某个版本注释:

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

$cvsadmin–mVER:

"writesomecommentshere"file_name

其中,VER表示版本,如1.8.2.1;–m和参数之间没有空格,冒号两边也没有空格。

5.6锁定检出

使用$cvsadmin–lfile_name锁定文件(排它性检出)

对于word文档、函数库等二进制文件,无法由CVS合并,应当选择锁定登出。

如果选择非锁定登出,在登入的时候,CVS会试图合并,将会造成不良后果。

5.7添加文件或目录

5.7.1添加文本文件

创建好新文件后,比如:

$touchnew_file

$cvsaddnew_file

5.7.2添加二进制文件

对于图片,Word文档等非纯文本的项目,需要使用cvsadd-b选项,否则有可能出现文件被破坏的情况。

比如:

$cvsadd-kbnew_file.gif

然后确认修改并注释

$cvsci-m"writesomecommentshere"new_file.gif

5.7.3恢复二进制文件当文本文件加入的情况

如果意外忘记使用-kb选项登入了一个二进制文件,可以使用如下方法恢复:

1)UNIX:

$cvsadmin-kbbinfile,恢复仓库中的文件

$cvsupdate-Abinfile,更新当前工作文件

2)WINDOWS:

拷贝完好文件到当前目录,执行

$cvsadmin-kbbinfile

$cvscommitbinfile

[注意]:

向一个已经存在的项目中添加一个或几个新文件。

执行add命令之后,还必须进行提交(commit),新文件才会出现在仓库中。

5.7.4添加目录

1)添加单层目录(没有子目录)

$cvsadddir_name

2)添加多层目录(包含子目录)

通过创建新模块的方式进行

5.8删除文件和目录

5.8.1删除文件

$cvsrm-ffile_name

$cvsci-m"whydeletefile"file_name

[注意]:

很多cvs命令都有缩写形式:

commit=>ci;update=>up;checkout=>co;remove=>rm等。

可通过命令$cvs--help-synonyms获得所有缩写列表。

5.8.2删除目录

1)删除所有文件:

$cvsremove-f*.tcl

$cvsci-m“removetestdir”

2)运行cvsupdate-P

$cvsupdate–P

5.9访问被删除的文件和目录

1、从cvs仓库中登出旧版本,例如1.1版。

$cvsupdate-r1.1file_name

2、如果忘记了文件版本号,即使这个文件已不存在于当前的工作目录之中,仍可以用log查看其历史:

$cvslogfile_name

3、如果连文件名都忘记了,可以用cvslog-R来查看所有的文件,包括曾被删除的文件。

5.10查看修改

5.10.1查看所有版本的日志

$cvslogfile_name

5.10.2查看某个文件的状态

$cvsstatusfile_name

5.10.3查看某个文件的历史

$cvshistoryfile_name

[注]:

命令的相关参数使用:

$cvsCOMMAND–help查看。

5.11查看区别

查看当前文件不同版本的区别:

$cvsdiff-r1.3-r1.5file_name

查看当前文件和库中相应文件的区别:

$cvsdifffile_name

5.12恢复旧版本

按以下步骤进行:

1、$cvsupdate

2、$cvs–Qupdate–p–r1.2file_name>file_name

3、$cvsci–m“whyrollbackrevision”file_name

5.13释放本地的工作拷贝

$cvsrelease–ddir_name

[注]:

最好不要直接删除本地工作拷贝,那样会删除未提交的修改,可能造成损失且不能被history记录。

5.14添加标签

$cvstag[OPTIONS]TAG[file_name|dir_name]

其中的OPTIONS为可选,常用以下几个选项:

1、-Ddate:

标记在该日期之前的最近版本。

如:

2、-F:

如果标签名称已被另外一些版本所使用,则强制重新制定标签名称。

3、-R:

递归执行,可进入子目录(默认情况)。

4、-rREV:

给版本VER加标签。

查看标签状态:

$cvsstatus–vfile_name

[注]:

cvsrtag与tag类似,但rtag是在仓库中直接给一个模块加标签,不需要工作拷贝。

5.15移动文件和重命名

cvs里没有cvsmove或cvsrename,因为这两个操作是先cvsremoveold_file_name,然后cvsaddnew_file_name实现的。

按以下步骤进行:

1、将工作目录中的旧文件重命名为新文件。

$mvoldnew

2、通知cvs删除旧文件

$cvsremoveold

3、通知cvs添加新文件

$cvsaddnew

4、从cvs仓库中删除旧文件、添加新文件

$cvsci-m“nameoldtonew”oldnew

5.16创建分支

方法一:

检出一个版本后,用cvstag创建分支。

如:

$cvsco–dmodule_name_old-rREL_1_0module_name

$cdmodule_name_old

$cvstag-bREL_1_0_PATCHES

方法二:

使用cvsrtag命令,不参考任何版本拷贝,直接创建分支:

$cvsrtag-b-rREL_1_0REL_1_0_PATCHmodule_name

在acct模块的1.0发行版上创建分支。

参数-rREL_1_0指示CVS将分支基于REL_1_0版本,而非当前的最新版本。

[注意]:

在创建版本分支之后,并不能立即访问使用版本分支,因为版本分支创建在CVS仓库中,而非当前工作目录。

需要通过“访问分支”将分支的所有版本检出到本地工作区。

5.17访问分支

情况一:

本地不存在该模块

创建一个新目录,从仓库中登出版本分支

$mkdirsrc

$cvsco-rREL_1_0_PATCHESmodule_name

情况二:

本地已经存在模块的一个分支版本,需要切换到另一个分支:

$cvsupdate-rREL_2_0_PATCHmodule_name

或者等价地:

$cdmodule_name

$cvsupdate-rREL_2_0_PATCH

5.18合并到主分支

如果需要合并A分支到B分支,进入B的工作目录,运行:

$cvsupdate–jA_branch_name

合并完成后,处理冲突,然后提交(commit)

另:

$cvsupdate–jREV1–jREV2是把从REV1到REV2的修改合并到工作拷贝中。

5.19查看当前分支

使用cvsstatus命令查看当前工作在哪个版本分支,看stickytag的状态:

$cvsstatus-vfile_name

6运用WinCvs进行系统管理

6.1建立管理环境

1.以Administrator登录Windows系统;

2.准备管理员工作目录:

E:

\CVSClient\Admin(管理员工作目录)

3.检出(【Checkoutmodules…】)CVSROOT到管理员工作目录;

4.修改CVSRoot的权限:

只让Administrator拥有rcw三种全部权限:

✧选中刚刚下载的【CVSRoot】模块,【Ctrl+L】或Admin=>CommandLine…,弹出CommandLineSettings对话框,直接执行CVS命令;

✧更改【CVSRoot】的拥有者:

cvschownadministrator回车,OK,完成;

✧取消所有用户的默认权限:

cvschacldefault:

n回车,OK,完成;

✧设置Administrator拥有所有权限:

cvschacladministrator:

rcw回车,OK,完成;

✧查看【CVSRoot】的权限状态:

cvslsacl回车,OK,在【Output】中显示:

Owner:

administrator

default:

n

administrator:

rwc

[注]:

系统支持的目录权限列表:

r(读取权限)

w(写入权限)

c(创建和删除权限)

n(没有任何权限)

默认情况下,任何用户都拥有任何目录的所有权限。

任何情况下只有目录的拥有者和Administrator才有权力更改目录的使用权限。

6.2添加和删除用户

1.【Ctrl+L】或Admin=>CommandLine…,弹出CommandLineSettings对话框,直接执行CVS命令。

2.添加新用户【Killer】:

cvspasswd-aKiller回车,设置密码,OK,完成。

3.绑定【Killer】到系统用户【Jackey】:

cvspasswd-rJackeyKiller回车,设置密码,OK,完成。

(必须绑定)

4.两次输入的密码可以不同,但以第二次输入的密码为最终密码。

5.删除用户【Killer】:

cvspasswd-XKiller回车,OK,完成。

6.其它特殊的功能查看passwd命令的帮助。

[注]:

可直接通过系统的用户管理来设置,这种方式更方便。

6.3分配权限

1.选中需要设置权限的目录,【Ctrl+L】或Admin=>CommandLine…,弹出CommandLineSettings对话框,直接执行CVS命令。

2.取消所有用户的默认权限:

cvschacldefault:

n回车,OK,完成。

3.设置Goury拥有所有权限:

cvschaclgoury:

rcw回车,OK,完成。

4.查看目录的权限状态:

cvslsacl回车,OK,完成。

[注]:

递归到子目录用-R参数,如:

cvschacl–Rfjqin:

rwc

6.4配置modules文件

modules位于CVSROOT模块下,配置modules文件的目的是方便用户检查相应的模块,其基本的格式如为:

【模块X的描述】【n个空格或参数】【相对目录路径X(DirX)】

配置方式有以下几种:

假设,cvs的根目录为:

/cvs_db/MobileNMS

存在/cvs_db/MobileNMS/GUI/src目录以及该目录下的两个文件xconfig、server.cc和子目录task

✧普通模块定义

在modules文件的末尾添加如下一行:

GUI源代码GUI/src

✧选择文件组成模块

server配置GUI/srcxconfigserver.cc

✧排除目录(采用“!

”)

GUI源代码(任务管理除外)!

GUI/src/taskGUI/src

✧聚合多个目录(采用“-a”)

GUI部分的代码和文档–aGUI/srcGUI/doc

✧模块别名(采用“&”)

GUI&GUI部分的代码和文档

#检出“GUI”模块的结果和检出“GUI部分的代码和文档”模块的结果相同

[范例]:

gcc-test–a\

!

gcc/gcc/test/g++.old-deja\

!

gcc/gc/test/g++.dg\

!

gcc/gc/test/g77.f-torture\

gcc/gcc/test

6.5CVS仓库的备份和恢复

6.5.1备份

1.关闭CVS服务器;

2.备份CVS仓库所在的所有目录和文件(打包拷贝至安全处)。

6.5.2恢复

将备份的内容恢复至原目录,这是可能有的开发人员的CVS工作目录与新的CVS库不一致。

最好的方法,就是让他们重新在checkou整个module,再将他们原来修改的文件拷贝至那个新的目录里,重新提交。

6.6版本编号值

系统编号:

向项目添加新文件时,其版本号第一位同本目录最高版本第一位,第二位是1

如一个目录下三个文件版本号分别为1.5,2.8,4.11,则新文件版本号为4.1。

用户编号:

指定的版本号必须大于所有当前版本号。

例如下述命令将所有源文

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1