一个项目的首次导入
cvs import -m "write some comments here" project_name vendor_tag release_tag
执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下
vender_tag: 开发商标记
release_tag: 版本发布标记
项目导出:将代码从CVS库里导出
cvs checkout project_name
cvs 将创建project_name目录,并将最新版本的源代码导出到相应目录中。这个checkout和Virvual SourceSafe中的check out不是一个概念,相对于Virvual SourceSafe的check out是cvs update, check in是cvs commit。
CVS的日常使用
注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。
将文件同步到最新的版本
cvs update
不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步
cvs update file_name
最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步 后修改”的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突,并自动将冲突部分用
>>>>>>
content on cvs server
<<<<<<
content in your file
>>>>>>
标记出来,由你确认冲突内容的取舍。
版本冲突一般是在多个人修改一个文件造成的,但这种项目管理上的问题不应该指望由CVS来解决。
确认修改写入到CVS库里
cvs commit -m "write some comments here" file_name
注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。
注释的质量很重要:所以不仅必须要写,而且必须写一些比较有意义的内容:以方便其他开发人员能够很好的理解
不好的注释,很难让其他的开发人员快速的理解:比如: -m "bug fixed" 甚至 -m ""
好的注释,甚至可以用中文: -m "在用户注册过程中加入了Email地址校验"
修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以下命令可以允许你修改某个文件某个版本的注释:
cvs admin -m 1.3:"write some comments here" file_name
添加文件
创建好新文件后,比如:touch new_file
cvs add new_file
注意:对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项按2进制文件方式导入(k表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况
比如:
cvs add -kb new_file.gif
cvs add -kb readme.doc
如果关键词替换属性在首次导入时设置错了怎么办?
cvs admin -kkv new_file.css
然后确认修改并注释
cvs ci -m "write some comments here"
删除文件
将某个源文件物理删除后,比如:rm file_name
cvs rm file_name
然后确认修改并注释
cvs ci -m "write some comments here"
以上面前2步合并的方法为:
cvs rm -f file_name
cvs ci -m "why delete file"
注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co/get; remove=>rm;
添加目录
cvs add dir_name
查看修改历史
cvs log file_name
cvs history file_name
查看当前文件不同版本的区别
cvs diff -r1.3 -r1.5 file_name
查看当前文件(可能已经修改了)和库中相应文件的区别
cvs diff file_name
cvs的web界面提供了更方便的定位文件修改和比较版本区别的方法,具体安装设置请看后面的cvsweb使用
正确的通过CVS恢复旧版本的方法:
如果用cvs update -r1.2 file.name
这个命令是给file.name加一个STICK TAG: "1.2" ,虽然你的本意只是想将它恢复到1.2版本
正确的恢复版本的方法是:cvs update -p -r1.2 file_name >file_name
如果不小心已经加成STICK TAG的话:用cvs update -A 解决
移动文件/文件重命名
cvs里没有cvs move或cvs rename,因为这两个操作是可以由先cvs remove old_file_name,然后cvs add new_file_name实现的。
删除/移动目录
最方便的方法是让管理员直接移动,删除CVSROOT里相应目录(因为CVS一个项目下的子目录都是独立的,移动到$CVSROOT目录下都可以作为新的独立项目:好比一颗树,其实砍下任意一枝都能独立存活),对目录进行了修改后,要求其开发人员重新导出项目cvs checkout project_name 或者用cvs update -dP同步。
项目发布导出不带CVS目录的源文件
做开发的时候你可能注意到了,每个开发目录下,CVS都创建了一个CVS/目录。里面有文件用于记录当前目录和CVS库之间的对应信息。但项目发布的时候你一般不希望把文件目录还带着含有CVS信息的CVS目录吧,这个一次性的导出过程使用cvs export命令,不过export只能针对一个TAG或者日期导出,比如:
cvs export -r release1 project_name
cvs export -D 20021023 project_name
cvs export -D now project_name
CVS Branch:项目多分支同步开发
确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目,同时也是项目的多个分支开发的基础。
cvs tag release_1_0
开始一个新的里程碑:
cvs commit -r 2 标记所有文件开始进入2.x的开发
注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。
版本分支的建立
在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch
cvs rtag -b -r release_1_0 release_1_0_patch proj_dir
一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题,
cvs checkout -r release_1_0_patch
而其他人员仍旧在项目的主干分支2.x上开发
在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号
cvs tag release_1_0_patch_1
如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中:
cvs update -j release_1_0_patch_1
http://dev.21tx.com/2004/12/06/10544.html
分享到:
相关推荐
4. **版本控制操作**:掌握`cvs checkout`、`cvs commit`、`cvs update`、`cvs diff`等基本命令,这些是日常使用中最常见的操作。 5. **分支与合并**:理解CVS中的分支和标签机制,如何创建分支进行并行开发,以及...
"CVS使用.pdf"和"CVS使用手册.pdf"都是关于CVS实际操作的手册,它们详细列举了CVS的日常使用方法,包括但不限于分支与合并、标签应用、冲突解决等高级特性。这些手册可能还会包含一些最佳实践和常见问题解答,以帮助...
2. **CVS的日常使用**: - 项目导出:`cvs checkout`用于获取项目代码,生成一个本地工作副本。 - 文件同步:在项目工作目录中,使用`cvs update`命令保持文件与CVS库同步,避免冲突。 3. **分支开发**: - 分支...
### Eclipse中CVS的使用详解 #### 一、CVS简介 CVS(Concurrent Versions System,并发版本系统)是一款开源版本控制系统,广泛应用于软件开发过程中对代码版本的管理。相较于传统的版本控制系统如Microsoft VSS,...
以下是对CVS使用和安装的详细说明: **CVS的基本概念** 1. **版本控制**:CVS通过创建文件的不同版本来实现版本控制,每个版本都有一个唯一的标识符,可以随时切换查看。 2. **仓库**:CVS仓库是存储所有项目文件...
CVS的日常使用主要包括文件的更新、提交等操作,这些是开发人员日常工作中频繁使用的功能。 - **文件同步到最新版本**:使用`cvs update`命令可以将文件更新至最新版本。如果不指定文件名,则默认更新当前目录及其...
### Linux 下 CVS 使用指南 #### 一、简介 CVS (Concurrent Versions System) 是一款开源的...以上命令涵盖了CVS的基本使用方法,能够满足大多数日常开发的需求。熟悉这些命令对于有效管理和维护代码版本至关重要。
总的来说,通过这个"Cvs使用教程",你可以系统地学习CVS的各个方面,包括基本概念、安装、配置以及日常使用的命令。这将有助于你更好地在团队中进行软件开发,提高协作效率,避免因版本控制问题引发的困扰。无论你是...
2. **CVS的日常使用**: 开发人员通常需要执行`cvs checkout`以获取项目代码,如`cvs checkout project_name`。之后,为了同步文件,应该在项目目录中运行`cvs update`,而非再次使用`checkout`。`update`命令可以...
通过上述步骤,您可以顺利地完成 TortoiseCVS 的安装与配置,并了解如何使用 TortoiseCVS 进行日常的版本控制操作。CVS 作为一种经典的版本控制系统,在软件开发中仍然占有重要的地位,尤其适合那些需要简单易用版本...
#### 三、日常使用注意事项 1. **下班前Commit所有更改** 每天下班前应当提交所有的更改到CVS服务器上,确保代码库是最新的状态。这样做的好处在于,第二天上班时只需执行Update操作即可获取最新的代码版本,同时...
在日常开发中,你可以使用以下CVS功能: - **检出/提交**:使用“团队”> “提交”(Commit)来将更改提交到CVS仓库。在提交之前,确保你已经解决了任何冲突。 - **更新**:使用“团队”> “更新”(Update)获取...
2. CVS 的日常使用:开发人员需要掌握 CVS 的基本命令,如 cvs update 和 cvs commit。 3. CVS 的分支开发:管理员可以使用 CVS 的分支功能,项目按照不同进度和目标并发进行。 4. CVS 的用户认证:管理员可以使用...
许多IDE如Eclipse、NetBeans支持CVS集成,提供图形化界面进行版本控制操作,简化了日常开发流程。 十、最佳实践 1. 经常提交:避免积累大量未提交的更改。 2. 明确的提交信息:描述每次提交的目的,方便回顾。 3. ...
### MyEclipse插件安装之CVS使用安装 #### 一、CVS安装与配置 在开始使用CVS之前,我们需要确保已经正确安装并配置了CVS环境。...这不仅有助于初学者快速掌握CVS的使用方法,也为日常开发工作提供了重要的支持。
本手册将详细讲解CVS的基本概念、安装与配置、日常操作以及高级用法,帮助用户全面掌握CVS的使用。 **1. CVS基础** CVS的核心功能包括版本控制、冲突解决和协同工作。通过CVS,开发者可以查看代码历史,恢复旧版本...
要使用CVS,首先需要在本地安装一个CVS客户端软件。这些客户端适用于多种操作系统,如Windows、Linux和macOS。一旦安装完毕,开发者就可以连接到CVS仓库,进行检出、更新、提交等操作。 对于匿名访问,开发者可以...
CVS(Concurrent Versions System)是早期广泛使用的一种分布式版本控制系统,它允许多个人同时编辑同一个文件,并记录每一次修改,以便于追踪历史、合并变化和恢复旧版本。本文将详细介绍CVS的使用方法,以及如何...
比如,开发人员日常使用`cvs update`和`cvs commit`,在遇到复杂场景时再深入学习其他功能。持续学习和查阅文档是提升CVS使用效率的关键。通过熟练运用CVS,开发团队可以高效地协同工作,保证软件开发的稳定性和一致...
本指南将详细介绍CVS的基本操作,包括如何将本地文件加入CVS控制、从CVS获取文件拷贝以及日常工作中如何使用CVS进行文件管理。 1. **将本地文件加入CVS控制** - **创建CVS模块**:作为项目管理员,你需要在CVS...