如何在Qt中使用CVS

大家都知道团队项目中常常要使用版本控制系统来对代码进行版本管理和对多人协作。不过有时候个人项目也需要版本控制。去年暑假的时候,记得我当时在为我所在学校的linux用户编写一个802.1x协议认证客户端,很快问题来了,因为是初次做像样一点的东西,在软件界面等方面又有比较多的要求,经常发现各种各样的bug,于是三天之后,我建立了一个日志文件来记录各种修改、各种问题和一些编写过程中产生的想法,但是这种方法非常费劲,而且各种修改记录……有时候都不知道自己改到哪儿了,当打开工程发现上次的修改发生严重问题的时候,那真是一个欲哭无泪啊,这时候我隐约感觉到,我需要使用版本控制系统,但是因为学习关系一直没有空来学。

  版本控制系统常用的有Git,Mercurial,SVN,CVS,以及微软的SourceSafe等,Qt默认似乎支持Git,可惜我先学习的是RCS,所以顺手就学了CVS。CVS是从RCS发展而来的一个历史比较久的版本控制系统,几乎覆盖了版本控制系统应有的所有功能。Qt提供对Git,Mercurial,Perforce,SVN以及CVS的支持,也就是说,配置好以后,无须命令行操作就可以方便的使用这些版本系统了。

因为我现在还没有用到过CVS服务器,所以这里演示的也只是使用本地文件夹作为仓库的情况。这里假设你已经懂得使用CVS的基本命令。

1.将工程导入CVS仓库

我这里有一个扫雷程序,导入仓库创建项目:

cvs -d /home/tyh/repository/ import -m"扫雷初步版本,尚需要增加扫雷英雄榜" qtmine qtmine initial

在位于/home/tyh/repository的仓库中创建了一个叫做qtmine的工程,并将当前文件夹内的内容导入工程仓库

2.通过Qt获取仓库中的工程并进行修改

运行Qt Creator,在欢迎界面中点击右下方的“Create Project”按钮,在弹出的如下对话框中,选择Project from Version Control-> CVS Checkout

wps_clip_image-14953

Choose之后,弹出如下对话框,Repository是指仓库中项目的位置,如果未指定CVSROOT,那么这里的repository可能就要写得长一点了,如果已经设定CVSROOT,那么直接写仓库中工程的名字即可。这里填写qtmine,Path一栏是指工程签出到哪一个文件夹,譬如这里/home/tyh/desk,那么签出之后,就会将签出的文件夹放到/home/tyh/desk中了。

wps_clip_image-27504

接下来,就可以看到工程已经成功加载到Qt Creator中,就可以像正常的工程一样修改啦!

wps_clip_image-2740

3.在Tools->CVS菜单中就可以看到各种指令了,在Qt Creator进行的正常的添加/删除文件等也无需繁琐的指令,只需回答简单一个问题确认以下就可以将修改映射到cvs中。

注意:为了减少不必要的文件,建议最初的工程创建时采用 Shadow Build,这样编译的中间文件(包括Makefile,moc*.cpp,*.o,可执行文件等)都会放到一个  工程名-build-desktop的文件夹中,自然也就不必因为中间文件的修改而进行频繁的嵌入/签出工作了。

CVS目前的配置已经基本可以自动识别各种二进制文件,自然也就无须对图片文件等费心了。不过使用过程中发现,对于Qt的资源文件,Qt Creator只负责在它的工程视图中的文件,例如将图片资源加入到qrc文件里,那么最后Qt Creator更新到CVS中的只是qrc文件,新增加的图片文件并没有签进去。所以说这些不归Qt Creator直接管辖的文件,还是要使用命令手动把它们添加到仓库中。

原文地址:https://www.cnblogs.com/qianyuming/p/1978962.html