第八章项目管理工具;本章内容及目标:
了解Linux系统下几种常见的项目管理工具
了解Subversion工具的基本特征,以及与CVS的区别
了解Subversion的组织结构以及标签、分支、合并的概念
掌握SVN从项目建立到项目提交的基本操作,以及其维护操作
掌握SVN如何使用标签、分支和合并的方法;项目管理工具简介
项目管理是大型程序设计中必不可少的一部分。对于经常修改程序版本的程序员而言,项目管理的价值已远远超出软件开发的领域。在项目开发中,如果当前出现了失误,项目管理可以使用户代码自动恢复到一个已知的、工作正常的版本,从而避免重大的风险和损失,此外,在已经发布的老程序版本中如果发现了bug,用户也可以轻松的检出特定的版本,以确认和修订,并生成该bug的修补程序。如果没有版本控制和项目管理,用户在开发时必须慎之又慎,缓慢推进,这样会严重影响开发效率。
Linux下常用的管理工具主要包括以下几种:Redmine、DotProject、Subversion以及CVS几种;DotProject
DotProject可以说是最早的开源项目管理软件系统,它是在1996年由开源组织人员开发的一个项目程序。它基于WEB程序,客户端不需要安装任何额外的软件即可使用(当前必须要有IE、Firefox等浏览器),它强大、小巧并且被翻译为众多国家的语言,是一款功能简单的项目管理程序。
Redmine
Redmine也是一个基于WEB的项目管理软件,是项目管理系统的后起之秀。它是使用Ruby语言进行开发的。除了集成了DotProject许多相似的功能外,Redmine还有不少自己独特的功能,例如,提供Wiki、新闻台、时间跟踪、feed聚合、导出pdf、集成Bug跟踪系统等。;ConcurrentVersionSystem(CVS)
CVS(并行版本系统)是一个基于GNU的客户端/服务器(C/S)系统,主要用于在团队开发环境下源码的维护。CVS用“Copy-Modify-Merge”支持对文件系统的访问和修改,并且明确将源文件的存储和用户工作空间独立开来,使其并行操作。CVS基于客户端/服务器的行为使其可容纳多个用户,构成网络也很方便,这一特性使得CVS成为大型公司进行程序开发和数据处理(特别是程序源代码处理)时的首选。
CVS的工作原理是:在项目总服务器上建立一个源代码库,并且在库里放置许多该项目的源程序。由总服务器源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里需要的项目文件下载到本地,然后在本地任意修改,最后用CVS命令进行提交,由CVS源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等,并且在修改新版本前,备份旧版本项目,如果新版本问题,可以再次使用旧版本进行程序二次开发。
;CVS被应用于各种流行的开放源码工程中,并且使用它可以保持了对一系列文件所作的历史记录,对于一个开发者来说,那就意味着在进行程序开发期间,能够跟踪所有改动的痕迹。CVS的主要特点如下:
1)代码集中配置。
2)调整代码。
3)使用服务器负载小。
4)日志功能。
5)与Eclipse的有机结合
在自由软件世界里,并行版本系统(CVS)一直是版本控制中比较理想的选择。CVS本身不加限制的处事风格以及对网络化操作的支持,非常符合开源世界的协作精神。事实证明,这是个正确的选择。;Subversion(SVN)
同其它许多工具一样,随着科技的发展,CVS逐渐显露出衰老和缺陷的迹象。SVN是以CVS继任者的面目出现的新型版本控制系统,它的许多的特征都与CVS基本相似,但是又充分弥补了CVS的缺陷。所有的这些努力的结果使得从CVS可以非常容易的迁移到Subversion,而不需要做重大的改革。
;相对于CVS而言,它支持如下特征:
1)统一的版本号
2)真实的版本历史
3)原子提交
4)空间节约
5)可选的网络层
6)优化数据库
7)高效的分支和标签操作
8)可修改性
9)跨平台;svn的基本概念
Subversion是一种集中分享信息的系统,它的核心是版本库,用户通过它可以存储所有的数据。版本库按照文件树形式储存文件和目录数据。与该版本库相连接并赋予权限的客户端可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。
;锁定-修改-解锁模式
在修改之前,“用户1”要“锁定”住这个文件,如果“用户1”锁住这个文件,“用户2”将不能做任何修改,如果“用户2”想请求得到一个锁,版本库会拒绝这个请求。在“用户1”结束编辑