CVS工具操作
了解术语
² Repository—配置库:CVS服务器(可能在远程,也可能在本地)的根目录。
² Module--模块:一个目录层。一个软件工程通常作为单一模块存放库中。
² Checkout—导出:从配置库中导出模块。
² Commit--提交:将你的修改提交到配置库中。
² Export--输出:指定到本地的工作目录下,可加入目录或文件,没有任何CVS 管理文件。输出的模块没有CVS 控制。
² Import—导入:把要进行管理的各种类型文件都导入配置库中,并创建一个新模块的过程。
² Release--发行版本:整个产品的版本。
² Revision--修订版:单个文件的版本。
² Tag--标签:在一个开发的特定期对一个文件集给定的符号名。
² Update--更新:从库中取出其他人的修改,只更新本地的拷贝。
3.2 不随意的进行陌生操作,够用就好。
3.3 代码文件以文本文档(Text)存放,文档文件以二进制(Binary)存放。
3.4 添加/删除文件只是被作了相应标记,要通过commit来完成操作。
3.5 碰到操作问题要寻问负责人或组长,而不是一意孤行。
3.6 每天上班时"update"本地模块,下班时"commit"本地修改,做到每日提交。
3.7 修改前先update。保证修改时的文件是最新版本,一旦发生冲突,解决的工作量会比较小。
3.8 修改后及时commit。本地配置项与库中配置项的差异越小,别人合并的难度也就越小
(他们有比较大的概率能够拿到新的版本)。
3.9 将不同功能的修改分开commit。CVS具备回退到先前版本的能力,一旦由于某项功能修改造成问题,也很容易将那次修改的内容去掉,而不是整个修改回退到正常的代码。
3.10 涉及同一功能的修改一次commit,方便日后的追踪。
3.11 提交修改过的文件,写清commit log(提交日志)。能够帮助其他人了解修改的内容,从而极大地提高效率;另一方面,这些日志对于自己,以及整个团队,都是非常宝贵的财富。
3.12 先调试后提交。减少别人不会因为同步了中间结果引发问题以及发生冲突的可能。
3.13 提交时碰到冲突,可通过编辑文件去掉标记和错误的行;如果对内容比较不了解的要经过两人协商,不允许随意改动。
3.14 CVS操作流程:
² 登入 (login),只需做一次,CVS会记住你第一次登入的信息。
² 在本地建一个工作目录,取出(checkout)整份源代码 (类似下载)。
² 依您的任务分担,修改某一个模块(modules)。
² 修改前,先查询模块在库状态(status)。
² 视在库状态,对比二者的差异(diff),进行调整。
(是否和他人产生冲突,若无冲突,修改完后,就可直接存入(commit)源码库)。
² 若有冲突,就要和他人讨论,取得协调。
² commit修改后的模块,请务必在注释中,详述修改的意图(书写格式参见 3.15)
² 每经过一段时日,查询在库状态,并更新(update)您的工作目录。
² 退出(Logout),执行此命令后,下次操作前要重新登入(Login)。
3.15 CVS 提交中注释格式——符号 [模块名] 详细注释
² 符号:"符号"可以是 + # - * ! ^ 六个半角符号之一。
+ 增加新功能。
# 新增加的功能,但还不完善,仅仅是开始。
- 删除旧的功能。
* 修正错误。
! 发现的问题,但仍未修正。
^ 计划要完成的功能。
² [模块名]:表示修改的是哪个模块,如果是单独文件的就写文件名,不同模块的最好是不要一起提交。
²详细注释:要指出此部分的提交属于哪部分内容:包括:新增加的功能;删除旧 的功能;修正错误;任务单号; 计划要完成的功能等等,还要详细说明为什么进行代码的修改,以及进行了什么样的修改。(尽可能的写出修改的详细信息)
举例说明:
+ [comm] 增加功能,修改了相应的接口和实现。把TToolBar类改为动态创建的,表S_FieldInfo中增加FDataView,FDataCondition字段。