CVS操作手册
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这里的三个输入框必须注意:Repository指的是需导入的目录名;将作为模块名导入仓库..
Vendor tag指定程序的提供者;releasetag应尽量避免重复..
注意一点;在import进去一个目录以后;是需要重新checkout下来的;可以先把这个目录改个名字;以免产生错误..
4.取仓库模块
5.将服务器的修改更新到自己工作目录
当服务器端有了修改;我们可以用update来把这些修改更新到本地..Update可以针对整个模块、某一个目录或者是单独的文件..
选定需要更新的对象;点右键选择update selection…
在弹出的update settings页面中
选择Create missing directories that exist in the repository添加本地目录中没有的目录
6.将自己的修改提交到CVS服务器
把修改提交到仓库..多人同时开发时;为避免提交时产生冲突;提交之前最好先做update..Update会把更新合并到本地;给解决冲突提供了机会..
commit options页面做重要的提交时要注意填写提交信息..
commit options页面中选择Force commiteven if not modified可强制提交
cvs server aborted: correct above errors first
这时就是产生了冲突;首先应该做update把CVS上的变动合并到自己本地文件中;同时在目录以.#filename.1.X保存了本地未做修改的原版本文件..
cvs以如下方式标记合并:
<<<<<<<和=======之间的部分是自己修改的部分;=======和>>>>>>>1.x之间是其他人提交到CVS仓库的修改..内容的取舍由开发人员协定..
1.常用CVS命令
命令格式说明:基本格式以蓝色字体标明;蓝色的option为可选项;必选的选项以橙色、
重要的选项以红色标示;请注意..
1.1import导入源码
命令格式import–mmessagerepository vendortag releasetag...
2.比较当前和另一版本差异;选Local copy against another revision/tag/branch or date
3.比较两不同版本之间的差异;选择Two revision/tags/branches or dates against each other
CH 2. CVS管理员使用手册
d.目录重命名了以后要手动添加目录下面的文件;还要注意是否需要改动modules文件;以保证模块定义与实际一致..OK.
另外有一种重命名的方法;见管理员手册部分2.5重命名文件和目录
10.从项目中删除文件
删除操作总是要特别谨慎的..一般来说在CVS中直接操作是不允许的;这个就交给配置管理员来做吧..选中要删除的文件后;右键选择remove selection者点右上角的或 都可以..Remove以后文件标志会变成 ;这时文件还没有完全被删除;只有在commit之后这个文件才会彻底从仓库里删除..
在checkout options页面中可以选By revision/tag/branch来指定需要取得版本、标记或分支..
选By date检出指定日期前的最新版本..
选Reset any sticky tags/date/kopts来清除粘滞性标签ch2 2.7..
注:checkout不能检出单独文件
commit option页面中选择Force recurse令提交操作可以递归;如果需要提交整个模块或者带子目录的目录的话..
7.冲突
如果做commit操作之前没有做update;而同时同一个文件有人做了改动;CVS会发出错误提示:
server: Up-to-date check failed for `~~/filename'
己添加的文件有一种转码的方法;就是先点 删除;然后以 方式添加后提交即可..这种方式并不破坏RCS文件;版本保存完整..
b.添加目录
由于CVS的add命令不是递归的;所以在添加非空目录的时候要先把目录加上直接点 就可以;然后逐个添加目录中的文件..如果有大批量的非空目录需要添加;可以使用import方式..
所有的添加都在commit之后生效..
9.从本地重命名文件和目录
重命名文件在CVS上操作的时候我们可以当做把一个文件以新的名字备份;添加到仓库;然后再删除旧文件;这是最安全的方式;适用于变更小;不受版本影响的文件..
a.建立文件和目录的备份;名称定为需要改成的名字
b.删除原文件和目录
c.添加新文件和目录
CVS操作手册
CH 1. WINCVS使用简介
1.介绍
本章简要介绍了WINCVS开发人员的日常使用和使用中可能会遇到的问题及解决方法..本文试验所使用的WINCVS版本是;如发现与本文不一致的地方;请注意是否版本问题;强烈建议安装本版本..
2.登录
安装完毕WINCVS后打开;选择菜单项的adminperference设置
Before date可以更新到指定时间之前的最新版本
Merge options页面中选only this rev./tag把指定版本合并到当前版本中来
Pluswiththis rev./tag把前一个版本合并到后一个版本中;版本号取新的..如:
update之后将把1.4版本恢复到1.2;未提交时版本号为1.4;提交后此项更改生效;版本号变为1.5..此操作只改变了1.4版的内容;所有版本号不受影响..
15.查看版本记录
通过Graph可以查看某一文件的版本历史如图:
清楚地显示该文件版本进展状况..可以直接选中某一版本操作
可进行的操作:将标记设为Sticky Tag、清除Sticky Tag、取下该版本到本地、以别名取下该版本到本地、直接编辑该版本、打开该版本、比较本地文件与该版本区别等
16.查看谁正在修改
列出的这些模块是在~/CVSROOT/modules文件中定义出的;这可是郑姐姐建议的哦:如果有足够的权限;可以不用逐个检出单独的模块而通过定义好的模块来取整个项目的所有信息..
在Globals页面中需要选定checkout read-only令检出的模块只读..编辑文件时在菜单栏中TraceEdit Selection即可进行修改..
可以清楚地看到哪天是哪个人做了多少改动..
14.查看文件状态
通过status可以查看本地工作目录文件状态..方法:右键选择status selection…
状态大致有以下几种:
Up-to-date、Locally Modified、Locally Added、Locally Removed、
Needs Checkout、Needs Patch、Needs Merge、Unknown
17.不同版本内容比较
比较版本可用右键选择diff selection…本功能只适用于文本文件
1.如需查看本地当前版本是否与服务器上有区别;可在diff settings页面diff compare options中选择Local copy against the same remote revision
General页面设置路径和用户名:
CVS页面设置
WinCvs页面设置
设置完毕后选择adminlogin登录;弹出的对话框可以在General页面核对一下用户名和路径是否正确..
输入密码后会提示:
***** CVS exited normally with code 0 *****
表示登录成功..如code为1则不成功;如果密码输入错误会提示:
在介绍取模块时我们提到要设定checkout read-only令取下的模块只读;欲对模块文件修改时选中TraceEdit selection或者左上角的 就可以了;
这样做是为了别人能够知道是否有人同时在对这个文件在进行操作和修改;做到心中有数..当然;如果不需要使用此项功能;只要在取模块的时候设定Checkout read-only为空就可以了
11.恢复己删除文件
有时候我们做了删除操作以后大吃一惊;哎呀;删错了别急;有办法..
1.如果在commit之前发ห้องสมุดไป่ตู้删错了;即文件状态是 时;恢复方法:直接点右上角的 添加一下;再做commit就可以恢复了..
2.如果己经commit了;恢复也是可以的:把备份的文件放到当前工作目录中;点 进行添加;然后做一个update操作;再commit一下;刚刚删掉的那个文件就会重新出现在工作列表中了:不过由于原来的文件己经删除了;虽然可以重新添加;但是过去的版本记录己经丢失了;这点要注意..
CVS会对这个目录进行过滤;检查其中的文件格式;
检查此时的文件格式是否正确;如有不一致的地方可选中文件类别进行EDIT:
选项依次为:保持不变;强制转换为二进制;强制转换为unicode;强制转换为文本;关闭关键字扩展;对于不需要放进仓库的某一类型的文件;可使用Ignore来忽略..
格式设置完毕以后;点continue继续:
3.创建新项目
创建新的项目或建立新模块;在准备好的程序目录中必须保证不带任何cvs的控制信息;比如我们从154上取下的模块;仅仅简单地删除其中隐藏的CVS文件夹是不够的;我们需要使用release来彻底断开与cvs的关联才可以重新import进新的CVS仓库..
选定本地要导入的目录;在菜单栏里选择remoteImport module…
选中edit selection时文件的只读标记会被清除:
你此时是test;同时mdm也对test.txt文件edit了一下;你们两个用editors of Selection就可以看到两个人都在对这个文件进行编辑:
如果一会update有冲突的话你就很容易知道是谁动了这个文件了..
修改完毕提交后就可以自动回复到只读状态..
12.放弃修改
有的时候我们需要放弃自己本地做的修改;比如打开一个文档后未做修改文档属性就变为modified;对于不希望有改变的文件;可以使用update的get the clean copy选项将服务器的版本覆盖本地的副本..
13.查看文件修改记录
CVS的特性之一就是会记录下所有人对文件所做的操作;可以通过查看日志的方法就可以了解谁在什么时候对哪个文件进行了什么修改..如前面提到的;如果大家在做重要提交时都写上提交信息的话;日志信息会更有助于我们发现问题所在..查看方法:选中所要查看的文件或目录;右键打开log selection…就可以进行查看了..如下图
或
cvs login: Empty password used - try 'cvs login' with a real password
重新login输入正确密码即可解决..
如果是低于版本的wincvs;登录时可能会出现.cvspass文件出错的提示;只要按照提示找到相应的.cvspass文件;删除其中的内容即可..
我们需要从CVS上检出模块、源码、目录或者特定的文件集合到本地做开发或修改..
在菜单项上选择remotecheckout module…弹出如下对话框:
在Module name and path on the server框中输入要检出的模块名就可以直接取出模块;输入可以是汉字;英文;大小写有区别..如果想查看仓库里其他模块情况可以点右边的button会出现一个列表:
选择Reset any sticky date/ta/’k’options清除粘性标签;检出时指定的版本号将会成为
sticky tag;用于限制修改..详见CH2 2.6关于stickytag
选择Get the Clean copy将会取下服务器上的文件覆盖本地副本;当前修改丢失..CH1.12
Update options页面中选retrieve rev./tag/bran可以指定强制更新到某一个版本
8.从本地添加文件和目录
a.添加文件
本地工作目录中没有放入CVS仓库的文件会以 形式标出..要添加到仓库中去;我们可以使用右上方的 按钮来操作..第一个图标表示以文本方式添加;一般源代码以这种方式;第二个带01标志的表示添加格式为二进制;对应的文件格式一般是DOC文档;图片之类的;这个在~/CVSROOT/cvswrappers文件中有定义..
Vendor tag指定程序的提供者;releasetag应尽量避免重复..
注意一点;在import进去一个目录以后;是需要重新checkout下来的;可以先把这个目录改个名字;以免产生错误..
4.取仓库模块
5.将服务器的修改更新到自己工作目录
当服务器端有了修改;我们可以用update来把这些修改更新到本地..Update可以针对整个模块、某一个目录或者是单独的文件..
选定需要更新的对象;点右键选择update selection…
在弹出的update settings页面中
选择Create missing directories that exist in the repository添加本地目录中没有的目录
6.将自己的修改提交到CVS服务器
把修改提交到仓库..多人同时开发时;为避免提交时产生冲突;提交之前最好先做update..Update会把更新合并到本地;给解决冲突提供了机会..
commit options页面做重要的提交时要注意填写提交信息..
commit options页面中选择Force commiteven if not modified可强制提交
cvs server aborted: correct above errors first
这时就是产生了冲突;首先应该做update把CVS上的变动合并到自己本地文件中;同时在目录以.#filename.1.X保存了本地未做修改的原版本文件..
cvs以如下方式标记合并:
<<<<<<<和=======之间的部分是自己修改的部分;=======和>>>>>>>1.x之间是其他人提交到CVS仓库的修改..内容的取舍由开发人员协定..
1.常用CVS命令
命令格式说明:基本格式以蓝色字体标明;蓝色的option为可选项;必选的选项以橙色、
重要的选项以红色标示;请注意..
1.1import导入源码
命令格式import–mmessagerepository vendortag releasetag...
2.比较当前和另一版本差异;选Local copy against another revision/tag/branch or date
3.比较两不同版本之间的差异;选择Two revision/tags/branches or dates against each other
CH 2. CVS管理员使用手册
d.目录重命名了以后要手动添加目录下面的文件;还要注意是否需要改动modules文件;以保证模块定义与实际一致..OK.
另外有一种重命名的方法;见管理员手册部分2.5重命名文件和目录
10.从项目中删除文件
删除操作总是要特别谨慎的..一般来说在CVS中直接操作是不允许的;这个就交给配置管理员来做吧..选中要删除的文件后;右键选择remove selection者点右上角的或 都可以..Remove以后文件标志会变成 ;这时文件还没有完全被删除;只有在commit之后这个文件才会彻底从仓库里删除..
在checkout options页面中可以选By revision/tag/branch来指定需要取得版本、标记或分支..
选By date检出指定日期前的最新版本..
选Reset any sticky tags/date/kopts来清除粘滞性标签ch2 2.7..
注:checkout不能检出单独文件
commit option页面中选择Force recurse令提交操作可以递归;如果需要提交整个模块或者带子目录的目录的话..
7.冲突
如果做commit操作之前没有做update;而同时同一个文件有人做了改动;CVS会发出错误提示:
server: Up-to-date check failed for `~~/filename'
己添加的文件有一种转码的方法;就是先点 删除;然后以 方式添加后提交即可..这种方式并不破坏RCS文件;版本保存完整..
b.添加目录
由于CVS的add命令不是递归的;所以在添加非空目录的时候要先把目录加上直接点 就可以;然后逐个添加目录中的文件..如果有大批量的非空目录需要添加;可以使用import方式..
所有的添加都在commit之后生效..
9.从本地重命名文件和目录
重命名文件在CVS上操作的时候我们可以当做把一个文件以新的名字备份;添加到仓库;然后再删除旧文件;这是最安全的方式;适用于变更小;不受版本影响的文件..
a.建立文件和目录的备份;名称定为需要改成的名字
b.删除原文件和目录
c.添加新文件和目录
CVS操作手册
CH 1. WINCVS使用简介
1.介绍
本章简要介绍了WINCVS开发人员的日常使用和使用中可能会遇到的问题及解决方法..本文试验所使用的WINCVS版本是;如发现与本文不一致的地方;请注意是否版本问题;强烈建议安装本版本..
2.登录
安装完毕WINCVS后打开;选择菜单项的adminperference设置
Before date可以更新到指定时间之前的最新版本
Merge options页面中选only this rev./tag把指定版本合并到当前版本中来
Pluswiththis rev./tag把前一个版本合并到后一个版本中;版本号取新的..如:
update之后将把1.4版本恢复到1.2;未提交时版本号为1.4;提交后此项更改生效;版本号变为1.5..此操作只改变了1.4版的内容;所有版本号不受影响..
15.查看版本记录
通过Graph可以查看某一文件的版本历史如图:
清楚地显示该文件版本进展状况..可以直接选中某一版本操作
可进行的操作:将标记设为Sticky Tag、清除Sticky Tag、取下该版本到本地、以别名取下该版本到本地、直接编辑该版本、打开该版本、比较本地文件与该版本区别等
16.查看谁正在修改
列出的这些模块是在~/CVSROOT/modules文件中定义出的;这可是郑姐姐建议的哦:如果有足够的权限;可以不用逐个检出单独的模块而通过定义好的模块来取整个项目的所有信息..
在Globals页面中需要选定checkout read-only令检出的模块只读..编辑文件时在菜单栏中TraceEdit Selection即可进行修改..
可以清楚地看到哪天是哪个人做了多少改动..
14.查看文件状态
通过status可以查看本地工作目录文件状态..方法:右键选择status selection…
状态大致有以下几种:
Up-to-date、Locally Modified、Locally Added、Locally Removed、
Needs Checkout、Needs Patch、Needs Merge、Unknown
17.不同版本内容比较
比较版本可用右键选择diff selection…本功能只适用于文本文件
1.如需查看本地当前版本是否与服务器上有区别;可在diff settings页面diff compare options中选择Local copy against the same remote revision
General页面设置路径和用户名:
CVS页面设置
WinCvs页面设置
设置完毕后选择adminlogin登录;弹出的对话框可以在General页面核对一下用户名和路径是否正确..
输入密码后会提示:
***** CVS exited normally with code 0 *****
表示登录成功..如code为1则不成功;如果密码输入错误会提示:
在介绍取模块时我们提到要设定checkout read-only令取下的模块只读;欲对模块文件修改时选中TraceEdit selection或者左上角的 就可以了;
这样做是为了别人能够知道是否有人同时在对这个文件在进行操作和修改;做到心中有数..当然;如果不需要使用此项功能;只要在取模块的时候设定Checkout read-only为空就可以了
11.恢复己删除文件
有时候我们做了删除操作以后大吃一惊;哎呀;删错了别急;有办法..
1.如果在commit之前发ห้องสมุดไป่ตู้删错了;即文件状态是 时;恢复方法:直接点右上角的 添加一下;再做commit就可以恢复了..
2.如果己经commit了;恢复也是可以的:把备份的文件放到当前工作目录中;点 进行添加;然后做一个update操作;再commit一下;刚刚删掉的那个文件就会重新出现在工作列表中了:不过由于原来的文件己经删除了;虽然可以重新添加;但是过去的版本记录己经丢失了;这点要注意..
CVS会对这个目录进行过滤;检查其中的文件格式;
检查此时的文件格式是否正确;如有不一致的地方可选中文件类别进行EDIT:
选项依次为:保持不变;强制转换为二进制;强制转换为unicode;强制转换为文本;关闭关键字扩展;对于不需要放进仓库的某一类型的文件;可使用Ignore来忽略..
格式设置完毕以后;点continue继续:
3.创建新项目
创建新的项目或建立新模块;在准备好的程序目录中必须保证不带任何cvs的控制信息;比如我们从154上取下的模块;仅仅简单地删除其中隐藏的CVS文件夹是不够的;我们需要使用release来彻底断开与cvs的关联才可以重新import进新的CVS仓库..
选定本地要导入的目录;在菜单栏里选择remoteImport module…
选中edit selection时文件的只读标记会被清除:
你此时是test;同时mdm也对test.txt文件edit了一下;你们两个用editors of Selection就可以看到两个人都在对这个文件进行编辑:
如果一会update有冲突的话你就很容易知道是谁动了这个文件了..
修改完毕提交后就可以自动回复到只读状态..
12.放弃修改
有的时候我们需要放弃自己本地做的修改;比如打开一个文档后未做修改文档属性就变为modified;对于不希望有改变的文件;可以使用update的get the clean copy选项将服务器的版本覆盖本地的副本..
13.查看文件修改记录
CVS的特性之一就是会记录下所有人对文件所做的操作;可以通过查看日志的方法就可以了解谁在什么时候对哪个文件进行了什么修改..如前面提到的;如果大家在做重要提交时都写上提交信息的话;日志信息会更有助于我们发现问题所在..查看方法:选中所要查看的文件或目录;右键打开log selection…就可以进行查看了..如下图
或
cvs login: Empty password used - try 'cvs login' with a real password
重新login输入正确密码即可解决..
如果是低于版本的wincvs;登录时可能会出现.cvspass文件出错的提示;只要按照提示找到相应的.cvspass文件;删除其中的内容即可..
我们需要从CVS上检出模块、源码、目录或者特定的文件集合到本地做开发或修改..
在菜单项上选择remotecheckout module…弹出如下对话框:
在Module name and path on the server框中输入要检出的模块名就可以直接取出模块;输入可以是汉字;英文;大小写有区别..如果想查看仓库里其他模块情况可以点右边的button会出现一个列表:
选择Reset any sticky date/ta/’k’options清除粘性标签;检出时指定的版本号将会成为
sticky tag;用于限制修改..详见CH2 2.6关于stickytag
选择Get the Clean copy将会取下服务器上的文件覆盖本地副本;当前修改丢失..CH1.12
Update options页面中选retrieve rev./tag/bran可以指定强制更新到某一个版本
8.从本地添加文件和目录
a.添加文件
本地工作目录中没有放入CVS仓库的文件会以 形式标出..要添加到仓库中去;我们可以使用右上方的 按钮来操作..第一个图标表示以文本方式添加;一般源代码以这种方式;第二个带01标志的表示添加格式为二进制;对应的文件格式一般是DOC文档;图片之类的;这个在~/CVSROOT/cvswrappers文件中有定义..