SVN和项目管理系统集成

   使用PROJECT的人都知道,在任务完成后,任务确认人并不能直接看到任务处理人为了完成任务,在版本管理工具上提交修改了哪些文件。除非任务处理人自己添加说明或者添加附件。
    其实不止项目任务,很多变更,变更验证人也需要知道变更修改人修改了哪些东西。但在接到变更管理发来的确认通知中,却经常没带修改信息,导致验证人在验证修改时有很多麻烦。变更修改人通常都需要自己把修改的文件一个个的告诉验证人,费力又麻烦。
    版本管理工具是现代软件开发中必备工具,它为软件开发中代码的跟踪回溯提供了完美支持。项目管理则是大型软件开发成功的条件,借助各种项目管理工具,项目团队才可能清楚的知道项目的当前状况并及时采取相应的应对措施。做为项目开发中的两大主流辅助工具,它们必然有很多信息需要交互,而如果没有一个良好的集成机制,将给这些管理带来很多麻烦。
    在一个真正集成的项目协作系统中,各组成部分的数据应该能互相关联,验证相互间的逻辑关系。而不单单只是多个简单MIS的堆加合成。DSTP(www.we-done.com)做为一个集成的项目协作系统,把版本管理工具和项目管理系统紧密的集成起来,项目管理系统直接获取版本管理工具中的文件及其修改记录,根据这些记录做管理决策;版本管理工具自动获取项目管理系统中的数据,做为修改的关联说明,指明了每次修改的原因和理由。为什么修改,修改了什么,DSTP(www.we-done.com)中实现了WHY<->WHAT的双向跟踪。
    在有和版本管理工具有关系的任务管理,变更管理,版本基线,持续集成等模块,DSTP(www.we-done.com)都实现了和SVN的集成,为项目的工作产品管理提供了良好支持。目前DSTP(www.we-done.com)只支持和SVN的集成,CVS,CC等暂时不支持。

    和任务,变更集成
    在DSTP中,要求每个SVN修改都必须关联一个任务(每个待处理的变更也认为是一个任务),做为修改的关联说明。如果没有任务关联,则不允许提交修改。为了实现修改和任务的关联,DSTP为SVN提供了一个钩子程序,用来检查每次修改是否关联了正确的程序。同时为客户端TortoiseSVN1.5提供了一个插件,方便用户把修改和任务关联起来。其中服务器端的钩子程序设置是必须的,客户端钩子是为了方便客户操作而提供,但不是必须。
   SVN提交时如何关联任务
   在正确的设置了TSVN插件后,每次提交时,首先跳出一个输入日志信息的对话框,在该框中用户可以根据情况自行输入并确定。点击确定后,TSVN并不会就象通常情况直接提交修改,而是会再弹出一个如下对话框


    在这对话框中,列出了用户当前需要处理的任务(这些任务都是和提交修改SVN库对应的项目任务,其它项目任务是不会列出的)。根据修改的实际情况,用鼠标选择要关联的任务,确定,DSTP就会自动关联所选的任务和提交的文件。关联任务支持多选。
     如果没有安装TSVN的插件,则TSVN不会自动以图形界面列出用户的当前任务供选择;但用户可以自己在日志输入框中输入任务ID来提交关联。

 能不关联吗?
 不行。正常情况下,修改都是有目的的,这些目的体现在项目管理系统中,就是项目任务或者变更,或者评审后发现问题需要修改。DSTP完全跟踪项目中的所有修改,每个修改都必须关联任务,保证项目中的所有变更都是可追溯跟踪的。
 如果没选择关联任务或者当前没任务可关联(这种情况就要考虑为什么要修改了),则SVN会拒绝提交操作,向客户端返回错误。

 关联后系统的体现
 1.系统保存了文件修改和变更记录。
 当关联任务提交修改后,用户再登陆DSTP查看。则可以发现DSTP中已经自动记录了当前SVN文件的变更记录。
 在相应的项目列表中,DSTP以树形方式显示了SVN中的当前所有文件,如下图。


 点击目录或者文件,都会显示该文件的信息。查看变更历史,显示如下



 列出了所有文件的变更情况和关联的项目任务。在每条变更记录后面,都会查看文件查看修改按钮。在无需打开SVN客户端的情况下,查看文件可以直接查看或下载当次修改的历史版本,查看修改则可以查看当次修改和前一个版本的差异。如下图





 2.任务已经和输出关联。
 再查看所关联的任务的信息,则可以发现任务中已经包含了所关联的输出


 任务负责人在确认任务完成情况时,就可以直接查看该任务的输出和输出内容,无需特别询问该任务有哪些输出或者特别打开SVN客户端去查看。

    和版本基线集成
    毫无疑问,创建版本(或者基线)时,需要选择该版本包含哪些内容,比如SVN中的某个分支下的代码文件,文档。DSTP中,可以在查看SVN某个目录时,把该目录设置为模块,不同的分支或分支下的目录,可分属于不同的模块。配置管理员创建版本时,系统自动列出当前项目所有的模块,用户管理员可以根据需要,选择其中部分模块的组成部分。如下图

    特别的,配置管理员可以为每个模块选择该模块对应SVN的版本号;或者也可以留空,在发布版本时,系统会自动查找发布时的该模块的最新SVN版本号,并记录下来。
    配置管理员可以修改版本,比如在回归测试后,可能需要修改模块的版本号才能得到正确的版本文件。当配置管理员也可以随时通过集成服务器获取版本,在获取版本时,DSTP会自动给集成服务器传递该项目版本所对应的SVN文件版本,保证集成服务器能获取正确的对应文件

    和持续集成服务器集成
    DSTP和SVN紧密集成,可以自动感知SVN的变动。可以设置SVN每次修改后,自动启动集成集成服务器进行集成。如果集成失败,自动向代码提交人和指定的项目人员发送集成报告,催促迅速更正,保证代码随时可用。
    在报告中,列出了本次集成各过程的运行时间,以及运行结果. 对于失败的过程,会以红色显目提醒,并提供错误信息。发送的报告格式如下


点错误信息查看,系统会自动显示本次集成的错误信息。

从错误信息可以看出,在test.c的第四行出现了错误。

猜你喜欢

转载自bizi.iteye.com/blog/181225