1.1 配置管理工具
开发部采用CVS进行配置管理,CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。
目前采用的CVS服务端为cvsnt-2.5.03.2260,客户端为TortoiseCVS-1.8.29。
1.2 CVS的使用
1.2.1 常用命令
英文命令 |
中文命令 |
操作、说明 |
备注 |
Checkout |
提取/取出 |
将文件下载到本地目录 |
第一次下载目录用 |
Commit |
提交 |
将改动过的文件提交到版本库 |
每次对文件更新后使用 |
Update |
更新 |
将文件同步到最新版本 |
获取最新版本 |
Tag |
标签 |
给某个版本添加一个标记符号 |
便于合并分支与主线 |
Branch |
分支 |
创建某个文件的分支 |
建立特殊版本时用到 |
Merge |
合并 |
将分支文件(或主文件)的更改合并到主文件(或分支文件) |
|
diff |
比较不同 |
比较任意两个版本间的不同 |
|
Reversion
Graph |
版本分支图 |
查看文件各版本(包括分支文件)的走向图 |
查询各个版本及Tag |
History |
历史 |
查看文件各个版本更新历史 |
查询版本详细信息 |
|
|
|
|
1.2.2 简单操作
文件提取:初次使用需将源文件从仓库提取出来,执行checkout命令将库文件提取至本地相应位置。
定时更新:开发人员每天早上对源代码或文件进行更新操作(右键执行update操作)。
实时更新:某一开发人员提交更改后,可通知其它人员进行更新操作。
实时提交:对某一文件进行更改完成后,执行commit命令将更改提交至仓库,更改前先进行更新操作,如多个人员对同一文件同时进行操作,会产生冲突,这时需要对冲突进行处理。
冲突处理:提交产生冲突时,先对文件进行同步(即更新)操作,之后会产生一个合并文件,‘<’号前为两个版本相同部分,‘=’号前为本地版本修改的内容,‘>’前为当前服务器最新版本修改的内容,找到最近提交该文件的同事,进行协商后对源文件进行修改并提交。
创建分支/标签:右键菜单中选择‘Branch’或‘Tag’找开创建对话框,输入Branch名或Tag名,选中‘Create new branch’/‘Create new tag’,点击OK即可。
查看版本/历史:文件(非文件夹)右健菜单中选择‘Revision Graph..’或‘History..’,可查看该文件的版本更新记录或历史信息。
1.2.3 版本分支管理
我们把一个项目的主要开发过程称作开发基线。当某一个特殊事件发生的时候,例如,有一个用户有特殊的需求,于是就从这个开发基线里分离出来一个叉,以满足用户特殊的需求,这个叉有它自己的发展方向,这就是分支。
---------分支
/
/
/
------●----------------------------开发基线
上面这个点,代表开发基线的最新版本,如果从开发基线建立分支来进行定制开发,开发基线和分支就可以有各自的发展方向。如果有需要,分支的代码可以重新合并到开发基线中,开发基线的代码也可以合并到分支代码中。
假设在我们的home目录下的proj目录就是我们的工程。下面具体看一下,如何建立分支:
1、当我们要在基线某个版本建立分支时,先在基线该版本上创建一个标签(Tag),就是上图中的黑点。这样做是便于以后主干可以重新回到分支创建时的状态。
2、创建分支:右健单击该目录,选择‘Branch’,指定分支名,点击‘OK’即可。新建分支的版本号呈偶数序列递增,如在基线版本1.5上创建两个分支,则分支版本分别为1.5.2.1和1.5.4.1,分支的后续版本分别为1.5.2.2和1.5.4.2。
3、在另外的目录下执行checkout命令,把刚才建立的分支提取出来(注意不要在原来目录下提取,那样会覆盖原有文件夹)。接下来就可以在分支目录和基线目录下分别开发了。
4、合并:以把分支中的更改合并到基线中为例,在基线中右健单击目录,选择‘Merge’命令,指定需要合并的分支的起点(这里HEAD代表了主干的末梢)和结束点,点击‘OK’即可。合并后需执行‘Update’命令,才能生成新的版本号。(在合并前和合并后分别创建一个标签,这样有利于合并后恢复操作)
从以上过程我们可以看到,当进行代码合并的时候,一定要注意沟通,合理的设置合并点,合并点的名字也应该望文生义。各个线上的合并工作也最好由一个人来做。如果合并点设置不当,对整个项目的管理可能会很麻烦。