现在的位置: 首页 > 综合 > 正文

使用WinCVS进行版本控制

2013年10月22日 ⁄ 综合 ⁄ 共 2797字 ⁄ 字号 评论关闭

    一、客户端的配置

    启动pagent,添加私钥;启动wincvs,配置好preference选项(admin菜单里)

    详情请见CVS客户端配置

    让我悄悄告诉你,在preference里最好将“globe”选项卡中的“checkout read-only”置空,这可是tianyuan的秘技:)

    二、初始化

    如果你已经连上服务器,做过checkin、checkout等工作,可以略过这一步。

    选择creat->>creat a new reporsitory,无需更改默认配置,确认即可。

    如果一切正常,会在窗体下部的output窗口显示如下信息:

    cvs -d :ext:monkey@monkeygro:/cvs/hrsystem init

    *****CVS exited normally with code 0*****

    第二行如果不是以“0”结尾,出现其他数字,就表明出错了。

    三、上传文件(checkin)

    窗体中部左边有一个explore页,点击它,选择你准备上传的文件夹;点击菜单栏的creat->>import module from selection,会跳出一个import filter窗体。如果你的文件里有错误,import filter窗体里就会有error或warn标志,如果真是这样,你最好还是先看一看有何问题。
下一个跳出的窗体是import setting,在select the module name and path on the remote server里面填上一个名称,当你的文件传上服务器后,cvs服务器里就会以这个名称建立一个代码库,存放刚才传上来的文件。

    请记住,下拉框并没有什么神奇的功能,它只能记住你上次填进去的东西。

    四、下载文件(checkout)

    经过上一步操作,你在服务器里就有了源代码,所有的开发者可以开始工作了。

    当然,开发者需要先下载一个拷贝到本地才能修改它。

    1、建立本地工作目录

    在自己的硬盘上新建一个目录,很多人都取名为“work”,表示这是工作目录。其实,这只是一个好习惯而已。

    2、下载文件

    选择creat->>checkout module,出现的窗体是checkout setting,在module name and path on the server中填写你在第三步(上传文件)中,上传到服务器中的模块名称。如果你记不住第三步你填写了什么,你可以先看一看本文的第九步。

    五、修改与提交

    1、edit与uedit命令现在,你可以准备修改源代码了。不过,当你到自己的本地工作目录中,可能会发现下载回来的文件都是只读的,这是因为你在第一步中preference中,没有将checkout read-only置空。

    在wincvs中,你到窗体中部的module页中,找到自己准备修改的文件,在右边的浏览窗口里选中它,然后选择菜单栏中的trace->>edit selection,就可以将不可读的文件置为可读。

    2、更新(update)

    你喜欢那一种开发工具?VB、VC、JAVA还是DELPHI?现在你可以开始你异常熟悉的代码开发工作了。

    无论你用那种工具,当你修改了工作目录中的文件后,在wincvs里,你就可以看到这个文件变成红色了。

    有一个好习惯是,在你准备提交到服务器之前,先更新一下,因为有可能别的开发者在你修改这个文件的同时,也可能也修改了这个文件,这就有可能会存在冲突,我们总是在提交前先处理冲突。

    更新的操作很简单:选中你修改了的文件,在菜单栏中选择modify,一般情况下,无需修改默认选项。

    处理冲突请看本文第十节 冲突处理

     六、标记(tag)

    标记是版本控制中很重要的功能。

    除了通常的作用,它还可以标记修改者,让大家知道,是谁提交了一个新版本。

    在wincvs中选择准备标记的文件,然后在菜单栏中选择modify->>creat a tag on selection;马上creat tag setting窗体会出现,在new tag name中填入标记名即可。

    七、分支的管理

    我们在这里先详细说一下分支的作用。

    我们设计了一个图书管理系统,把1.0版交给了客户A大学;然后我们继续开发,有了新版本1.1版、1.2、1.3......这时A大学告诉我们,1.0版本有bug,我们很快在1.0版本的源代码中找到了错误所在。

    这时候,最简单的解决办法是给A大学一个bug patch。你会问,为什么不给客户最新版本?原因很简单:第一,我们还没有检查最新稳定版本中又无此bug;第二,客户的系统已经运行了一段时间,升级到最新版本上可能还会发生更多新问题。

    那么,我们就应该在1.0版本上建立一个分支,在这个分支上进行开发,修改bug ,创建bugpatch,客户马上就能解决问题了。

    然后我们关起门来,查看最新版本上又无此bug;如果有,就将分支合并到主版本上,解决最新版本的问题。

    实际操作如下;

    在菜单栏的creat->>creat a branch,在跳出的creat branch setting窗体上,new branch中,填入你给分支取的名字;在module to fork中填入文件名;请记住,你要在rtag options选项卡中,选中rev./tag/branch,填入版本号。如果你这里不填,生成的分支将会以最新版为分叉点。

    八、锁定文件

    这可是武汉自由软件协会的另一个秘技。

    一般而言,在项目小组中,项目经理会定期公布最新的基础版本,要求小组成员都在这个基础版本上进行进一步开发。

    在实际工作中,总会有些成员提前完成工作,他们提交更改后,最新版本就会比项目经理发布的基础版本的version更高。

    有时候,某些项目成员会有意无意修改基础版本,并且指定提交到基础版本上,如果允许他们提交修改,大家可能都会在一个错误的基础版本工作,后果是不堪设想的。

    锁定文件的操作如下:

    菜单栏的admin->>comandline,输入这个命令:

    cvs admin -l版本号 文件全名

    注意,-l和版本号之间没有空格。

    如果你锁定成功,会有如下提示:

    RCS file: /cvs/hrsystem/test/new.txt,v

    1.1.2.3 locked

    done

    *****CVS exited normally with code 0*****

    九、文件浏览。

    1、文件标志浏览

    2、通过web页面浏览

    3、文件对比

    十、冲突处理

    十一、管理员的工作

    1、协调小组,制定代码管理规范

    2、及时发布官方版本信息

    3、充分利用标记和分支管理开发团队

抱歉!评论已关闭.