浅谈在Qt中使用CVS

移动开发
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。

Qt中使用CVS是本文要讲解的内容,CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。

大家都知道团队项目中常常要使用版本控制系统来对代码进行版本管理和对多人协作。不过有时候个人项目也需要版本控制。去年暑假的时候,记得我当时在为我所在学校的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

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

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

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直接管辖的文件,还是要使用命令手动把它们添加到仓库中

小结:在Qt中使用CVS的内容介绍完了,对于CVS,您如果感兴趣,也可以去网上搜集一些其他的知识,那么***在稍微介绍一下,CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。实际上CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。CVS维护的文件类型可以是文本类型也可以是二进制类型。

【编辑推荐】

剖析Qt Quick之QML程序

剖析Qt Creator布局管理器

浅析Qt Creator中使用OpenCV库

QT中关于信号与槽机制的实现原理

Qt Creator安装和hello world程序编写

责任编辑:zhaolei 来源: 互联网
相关推荐

2009-06-10 09:58:32

Oracle sequHibernate

2009-06-15 14:28:00

NetBeansJavafx

2011-06-30 10:50:39

Qt OpenCV

2011-06-28 10:03:37

Qt OpenCV qmake

2011-06-08 16:56:37

VS2008 Qt

2011-09-01 15:26:51

QtMysql数据库

2011-08-23 17:52:39

LUAWeb 开发

2009-06-11 09:04:00

2011-06-10 09:09:38

Qt Creator OpenCV

2009-06-06 19:17:37

java递归删除

2009-06-25 16:49:24

Hibernate

2013-12-13 17:21:14

Lua脚本语言

2023-04-12 15:25:09

Bytrace鸿蒙

2023-11-17 12:04:39

GORM并发

2011-06-28 15:37:34

Qt 内存

2011-07-20 14:53:28

iPhone NSLocalize 国际化

2011-06-21 16:51:21

Qt 静态 编译

2017-04-05 13:17:26

LinuxShellvi

2023-07-04 16:36:03

Linuxcd 命令

2023-07-23 19:26:18

Linuxcat 命令
点赞
收藏

51CTO技术栈公众号