Linux常用工具速查实用手册第8章-项目管理工具

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第八章项目管理工具•本章内容及目标:•了解Linux系统下几种常见的项目管理工具•了解Subversion工具的基本特征,以及与CVS的区别•了解Subversion的组织结构以及标签、分支、合并的概念•掌握SVN从项目建立到项目提交的基本操作,以及其维护操作•掌握SVN如何使用标签、分支和合并的方法•项目管理工具简介•项目管理是大型程序设计中必不可少的一部分。对于经常修改程序版本的程序员而言,项目管理的价值已远远超出软件开发的领域。在项目开发中,如果当前出现了失误,项目管理可以使用户代码自动恢复到一个已知的、工作正常的版本,从而避免重大的风险和损失,此外,在已经发布的老程序版本中如果发现了bug,用户也可以轻松的检出特定的版本,以确认和修订,并生成该bug的修补程序。如果没有版本控制和项目管理,用户在开发时必须慎之又慎,缓慢推进,这样会严重影响开发效率。•Linux下常用的管理工具主要包括以下几种:Redmine、DotProject、Subversion以及CVS几种•DotProjectDotProject可以说是最早的开源项目管理软件系统,它是在1996年由开源组织人员开发的一个项目程序。它基于WEB程序,客户端不需要安装任何额外的软件即可使用(当前必须要有IE、Firefox等浏览器),它强大、小巧并且被翻译为众多国家的语言,是一款功能简单的项目管理程序。•RedmineRedmine也是一个基于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用户2用户3读写读•锁定-修改-解锁模式•在修改之前,“用户1”要“锁定”住这个文件,如果“用户1”锁住这个文件,“用户2”将不能做任何修改,如果“用户2”想请求得到一个锁,版本库会拒绝这个请求。在“用户1”结束编辑并且放开这个锁之前,“用户2”只可以阅读文件。“用户1”解锁后,“用户2”才能得到自己的轮换位置,锁定并且开始编辑这个文件。“锁定-修改-解锁”模型经常会成为用户的障碍,例如,有时候“用户1”锁住文件后忘了此事,而“用户2”一直等待解锁来编辑这些文件,于是“用户2”就在这里僵住了,这种情况会导致不必要的耽搁和时间浪费。•拷贝-修改-合并模式•首先为每一个客户建立个人拷贝版的版本库文件,并在用户端建立本地映射,用户可以并行工作,修改各自的工作拷贝,最终将各个拷贝合并在一起形成最终的版本,这种模式最终要靠人工去确认正误。版本库文件用户1用户2读取复制件读取复制件版本库文件用户1用户2本地修改复制件本地修改复制件版本库文件用户1用户2提交修改件提交修改件生成新版本用户1用户2(1)(4)(3)(2)•svn工作术语介绍工作拷贝签出提交更新•标签、分支和合并主干和分支用户1签入提交用户2签入提交主干时间主干主干主干时间主干分支1分支3分支2•标签SVN版本控制系统允许用户在某一时刻为一组文件或者一些目录分配一个名字。“标签”是一个项目某一时间的“快照”,在Subversion里这个概念无处不在,每一次提交的修订版本都是一个精确的快照。标签是一种很好的跟踪项目开发过程中发生重要事件的方式。通过标签用户可以获取文件的某个以前的版本,同时还可以签出项目几个月以前的源代码,因此,它在项目“馈归”中起到重要作用。在某种角度看,标签实际上和分支是相同的。•合并在版本控制中,用户可能最后想合并其中的几个分支,Subversion支持进行“合并”操作。虽然从分支上签出的版本都来自不同的分支,并且也是签回本身的分支,但是,Subversion是对文件目录进行操作,版本库管理员可以让版本系统找到在发布版本时做出了哪些修改和变化,然后再把这些改动应用到主干代码上,甚至可以把数个改动合并到主干上。主干时间主干分支1分支3分支2•svn的基本操作:创建项目库svnadmincreate项目创建svnimport项目查看svnlist项目签出svncheckout项目修改svndiff项目提交svncommit项目更新svnupdate•对文件的操作文件添加文件复制文件删除文件移动•高级操作使用分支创建标签合并

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功