文件内容的显示方法及装置与流程

文档序号:12667497阅读:176来源:国知局
文件内容的显示方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种文件内容的显示方法及装置。



背景技术:

目前,在软件开发过程中,程序开发人员或测试人员是否能够直观、准确地定位自身需要关注的代码,将直接影响软件产品的开发与测试效率和质量。然而,在软件开发与测试期间无法回避访问权限问题。特别是对于大型重点项目而言,每名程序开发或测试人员负责的仅为整个项目的一个组成部分,只需要对自身负责的部分具有查阅代码的权限。因此,需要在测试代码/评审与权限管理之间需求平衡,以提高软件产品的开发与测试效率和质量。

现有的测试方法是通过程序开发人员主动通知测试人员本次提交的新增内容,具有查阅权限的测试人员可以直接通过版本管理工具指令以搜索程序开发人员提交的内容并查看diff(其是指对两个文件进行差异比较,并对差异部分加以显示)。然而,如果不具备查阅对应文件的权限,只能让程序开发人员生成提交的diff信息,然后发给测试人员进行回归查看或者采用代码评审(即在软件开发过程中,通过对源代码进行系统性检查的过程,其通常的目的在于:查找系统缺陷,以确保软件的总体质量并提高开发者的自身水平)工具,可以查看到每一次提交与先前提交的不同版本内容之间的差异信息。程序开发人员可以通知测试人员哪次提交是与本次改动相关的,以便测试人员通过代码评审工具中查找程序开发人员提交的diff信息。

通过上述方法可以发现,相关技术中所提供的测试方法无法实现灵活的权限管理,例如,在一些权限管理较为严格的软件开发项目仅能查阅与测试或程序开发人员相关的代码diff内容,而无法查阅整个文件内容。如果通过版本管理工具指令直接执行查阅操作,则容易造成代码权限难以控制,即版本管理工具权限的开放程度是针对一个文件或者目录而言的,而缺少针对特定文件的不同版本diff信息的权限设置。即使针对特定文件配置查阅权限,如果程序开发人员提交的是新增文件,则还需要针对该新增文件配置查阅权限,从而增加操作复杂度。而如果仅使用一些代码评审工具则又难以定位到与本次测试内容相关的版本管理工具提交diff信息,还需要程序开发人员将最新提交的文件内容通知给测试人员,然后再由测试人员搜索到对应提交的diff信息。由此引发的问题在于:代码评审工具都是通过频繁监控版本管理服务器的数据存储仓库,发现版本管理工具存在提交内容时才记录对应的信息,而不是通过版本管理工具提交时主动触发获取提交信息。

综上所述,相关技术中的测试人员在进行代码测试时或者程序开发人员在进行代码评审时无法准确地获取自身负责的指定代码。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种文件内容的显示方法及装置,以至少解决相关技术中的测试人员在进行代码测试时或者程序开发人员在进行代码评审时无法准确地获取自身负责的指定代码的技术问题。

根据本发明实施例的一个方面,提供了一种文件内容的显示方法,包括:

对登录用户进行权限验证;在登录用户通过权限验证后,获取与登录用户的用户标识对应的记录标识,其中,记录标识用于索引登录用户在版本管理服务器中查阅的更新文件内容;将与记录标识关联的历次更新文件内容显示给登录用户。

可选地,在对登录用户进行权限验证之前,还包括:获取文件更新通知消息,其中,文件更新通知消息是在对本地文件内容进行更新并向版本管理服务器提交更新文件内容的过程中触发的,本地文件内容为版本管理服务器中存储的对应文件的副本;从文件更新通知消息获取记录标识,并在记录标识与更新文件内容之间建立对应关系。

可选地,从文件更新通知消息获取记录标识包括:对文件更新通知消息进行解析,从文件更新通知消息中获取日志信息;对日志信息进行解析,从日志信息中获取记录标识。

可选地,在将与记录标识关联的历次更新文件内容显示给登录用户之后,还包括:确定登录用户选取的第一版本的更新文件内容与第二版本的更新文件内容,其中,第一版本晚于第二版本;获取第一版本的更新文件内容与第二版本的更新文件内容之间的差异信息,并对差异信息进行显示。

可选地,获取第一版本的更新文件内容与第二版本的更新文件内容之间的差异信息包括:获取步骤,根据记录标识获取由第一版本的更新文件内容构成的文件路径列表;选取步骤,从文件路径列表中选取任意尚未遍历的文件路径;比较步骤,将通过选取的文件路径获取到的更新文件与第二版本的更新文件内容中对应的文件进行比较,得到与选取的文件路径对应的差异内容;判断步骤,判断文件路径列表是否已经全部遍历完毕,如果没有遍历完毕,则返回选取步骤;如果全部遍历完毕,则将每次选取的文件路径对应的差异内容组成差异信息。

根据本发明实施例的另一方面,还提供了一种文件内容的显示装置,包括:

验证模块,用于对登录用户进行权限验证;第一获取模块,用于在登录用户通过权限验证后,获取与登录用户的用户标识对应的记录标识,其中,记录标识用于索引登录用户在版本管理服务器中查阅的更新文件内容;显示模块,用于将与记录标识关联的历次更新文件内容显示给登录用户。

可选地,上述装置还包括:第二获取模块,用于获取文件更新通知消息,其中,文件更新通知消息是在对本地文件内容进行更新并向版本管理服务器提交更新文件内容的过程中触发的,本地文件内容为版本管理服务器中存储的对应文件的副本;处理模块,用于从文件更新通知消息获取记录标识,并在记录标识与更新文件内容之间建立对应关系。

可选地,处理模块包括:第一解析单元,用于对文件更新通知消息进行解析,从文件更新通知消息中获取日志信息;第二解析单元,用于对日志信息进行解析,从日志信息中获取记录标识。

可选地,上述装置还包括:确定模块,用于确定登录用户选取的第一版本的更新文件内容与第二版本的更新文件内容,其中,第一版本晚于第二版本;第三获取模块,用于获取第一版本的更新文件内容与第二版本的更新文件内容之间的差异信息,并对差异信息进行显示。

可选地,第三获取模块包括:获取单元,根据记录标识获取由第一版本的更新文件内容构成的文件路径列表;选取单元,从文件路径列表中选取任意尚未遍历的文件路径;比较单元,将通过选取的文件路径获取到的更新文件与第二版本的更新文件内容中对应的文件进行比较,得到与选取的文件路径对应的差异内容;判断单元,判断文件路径列表是否已经全部遍历完毕,如果没有遍历完毕,则返回选取单元;如果全部遍历完毕,则将每次选取的文件路径对应的差异内容组成差异信息。

在本发明实施例中,采用在登录用户通过权限验证后,获取与登录用户的用户标识对应的记录标识,并将与记录标识关联的历次更新文件内容显示给登录用户的方式,通过记录标识来索引登录用户在版本管理服务器中查阅的更新文件内容,达到了登录用户仅能查阅与自身用户标识对应的记录标识所关联的更新文件内容的目的,从而实现了方便、快捷地进行代码权限管理的技术效果,进而解决了相关技术中的测试人员在进行代码测试时或者程序开发人员在进行代码评审时无法准确地获取自身负责的指定代码的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的文件内容的显示方法的流程图;

图2是根据本发明优选实施例的更新文件内容存储过程的示意图;

图3是根据本发明优选实施例的对两个不同版本之间的文件内容进行比较获取差异信息过程的示意图;

图4是根据本发明实施例的文件内容的显示装置的结构框图;

图5是根据本发明优选实施例的文件内容的显示装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种文件内容的显示方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的文件内容的显示方法的流程图,如图1所示,该方法包括如下步骤:

步骤S12,对登录用户进行权限验证;

步骤S14,在登录用户通过权限验证后,获取与登录用户的用户标识对应的记录标识,其中,记录标识用于索引登录用户在版本管理服务器中查阅的更新文件内容;

步骤S16,将与记录标识关联的历次更新文件内容显示给登录用户。

通过上述步骤,采用在登录用户通过权限验证后,获取与登录用户的用户标识对应的记录标识,并将与记录标识关联的历次更新文件内容显示给登录用户的方式,通过记录标识来索引登录用户在版本管理服务器中查阅的更新文件内容,达到了登录用户仅能查阅与自身用户标识对应的记录标识所关联的更新文件内容的目的,从而实现了方便、快捷地进行代码权限管理的技术效果,进而解决了相关技术中的测试人员在进行代码测试时或者程序开发人员在进行代码评审时无法准确地获取自身负责的指定代码的技术问题。

在优选实施过程中,上述对登录用户的权限验证可以采用Openid权限验证方式,Openid是通过统一资源标识符(URI)来认证一个网站的唯一身份,根据该身份可以分配对应的权限。上述版本管理服务器可以为Subversion(简称为svn)服务器,其用于实现多人共同开发同一个项目,共用资源的目的。上述更新文件内容可以包括但不限于:在原有文件内容的基础上增加新的内容、在原有文件内容的基础上删除部分已有内容、在原有文件内容的基础上修改部分已有内容。上述记录标识可以为Redmine的单号。Redmine是指基于web的一个项目管理软件,通过“项目(Project)”的形式将成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,多人参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动为成员汇报项目进度。在每次对svn服务器上存储的文件内容进行更新时,均会对应一个Redmine单号,以限制用户仅能够查阅到与自身负责的Redmine单相关联的更新文件内容。

可选地,在步骤S12,对登录用户进行权限验证之前,还可以包括以下执行步骤:

步骤S10,获取文件更新通知消息,其中,文件更新通知消息是在对本地文件内容进行更新并向版本管理服务器提交更新文件内容的过程中触发的,本地文件内容为版本管理服务器中存储的对应文件的副本;

步骤S11,从文件更新通知消息获取记录标识,并在记录标识与更新文件内容之间建立对应关系。

在优选实施例中,上述文件更新通知消息可以为svnhook post_commit消息。svnhook是指在svn工具内添加一个钩子,每当执行svn提交操作时均会触发该钩子,其作用在于将每次通过svn工具提交的信息发送到至指定的服务器。通过在svn中加入hook,实现在每次发生文件内容更新时都能够及时地获取对应的提交记录,而无需实时监控svn服务器。

图2是根据本发明优选实施例的更新文件内容存储过程的示意图,如图2所示,该过程可以包括以下操作步骤:

步骤S202,接收程序开发人员每次提交时触发的svnhook通知消息,其中,该svnhook消息消息中携带有本次提交的svn信息,其可以包括但不限于:文件路径、提交人员、log。

步骤S204,对svnhook通知消息进行解析,从svnhook通知消息中提取本次提交的svn信息。

步骤S206-步骤S208,从log中提取Redmine的单号(即程序开发人员在执行提交操作时需要在log中添加“#单号”,否则svn会返回提交失败或异常报警)。如果提取失败,则流程结束;如果提取成功,则继续执行步骤S210。

步骤S210-步骤S212,根据提取到的单号从Redmine中查询该单号的关联信息,其可以包括但不限于:跟进测试人员,标题,描述内容。如果查询成功,则继续执行步骤S218;如果查询失败,则继续执行步骤S214。

步骤S214,存储Redmine单,其中,该Redmine单内各字段信息置为空,等待下次查询成功后再进行填充。

步骤S216,为该Redmine单分配默认的跟进测试人员(例如:系统管理员);转到步骤S222。

步骤S218-步骤S220,存储Redmine单信息,并将该Redmine单分配给对应的跟进测试人员。

步骤S222,建立一个Redmine单位索引的记录,将本次提交内容与该Redmine单相关联。整个流程结束。

可选地,在步骤S11中,从文件更新通知消息获取记录标识可以包括以下执行步骤:

步骤S110,对文件更新通知消息进行解析,从文件更新通知消息中获取日志信息;

步骤S111,对日志信息进行解析,从日志信息中获取记录标识。

程序开发人员在执行提交操作时需要在日志信息(log)中添加“#单号”,否则svn会返回提交失败或异常报警。通过本发明提供的关联项目管理平台可以接收程序开发人员每次提交时触发的svnhook通知消息,其中,该svnhook通知消息中携带有本次提交的svn信息,其可以包括但不限于:文件路径、提交人员、log,进而从log中提取Redmine单号,并根据提取到的单号从Redmine中获取该单号的关联信息,其可以包括但不限于:跟进测试人员,标题,描述内容。

可选地,在步骤S16,将与记录标识关联的历次更新文件内容显示给登录用户之后,还可以包括以下执行步骤:

步骤S17,确定登录用户选取的第一版本的更新文件内容与第二版本的更新文件内容,其中,第一版本晚于第二版本;

步骤S18,获取第一版本的更新文件内容与第二版本的更新文件内容之间的差异信息,并对差异信息进行显示。

在优选实施例中,支持以Redmine单号为索引,不仅可以快速查阅与Redmine单号相关联的当前提交版本文件内容与前一次提交版本文件内容之间的差异信息,而且还可以快速查阅与Redmine单号相关联的当前提交版本文件内容与最早一次提交版本文件内容之间的差异信息(即程序开发人员通过多次提交实现特定功能的全部内容)。由此,可以降低了测试人员与程序开发人员之间的沟通成本。另外,通过直接以Redmine单号为索引查看到与该Redmine单号关联的全部差异信息,能够降低操作复杂度。

可选地,在步骤S18中,获取第一版本的更新文件内容与第二版本的更新文件内容之间的差异信息可以包括以下执行步骤:

步骤S180,根据记录标识获取由第一版本的更新文件内容构成的文件路径列表;

步骤S181,从文件路径列表中选取任意尚未遍历的文件路径;

步骤S182,将通过选取的文件路径获取到的更新文件与第二版本的更新文件内容中对应的文件进行比较,得到与选取的文件路径对应的差异内容;

步骤S183,判断文件路径列表是否已经全部遍历完毕,如果没有遍历完毕,则返回选取步骤;如果全部遍历完毕,则将每次选取的文件路径对应的差异内容组成差异信息。

以测试人员进行测试为例,测试人员在Redmine提交一个漏洞(bug)单给程序开发人员,程序开发人员在完成该bug单的代码开发后,提交自身修改的全部文件至svn仓库中,并在日志(log)中添加“#bug单号”。svn hook的脚本在发现有对应的单号后,便会主动到Redmine上跟进该单号,并以该单号为索引查找到该单号相关的全部信息,其可以包括但不限于:跟进测试人员,bug描述信息。然后,再将这些信息进行关联显示。

由此,测试人员便可以查看到自身跟进的所有单的代码diff信息并搜索对应的单号以查找到程序开发人员提交的diff文件,从而便于执行白盒测试。

下面将结合图3所示的优选实施方式对两个不同版本之间的文件内容进行比较获取差异信息的过程进行详细地介绍。

图3是根据本发明优选实施例的对两个不同版本之间的文件内容进行比较获取差异信息过程的示意图。如图3所示,该过程可以包括以下操作步骤:

步骤S302-步骤S306,对登录用户进行Openid权限验证,通过信用中介确定只有属于白名单范围内的用户才允许登录。

步骤S308,如果登录用户未能通过Openid权限验证,则流程结束。

步骤S310-步骤S312,在登录用户成功通过Openid权限验证后,可以从数据库中查询分配给该用户的所有redmine单以及相关的svn提交记录并显示在前端界面。

步骤S314-步骤S316,当用户点击查看特定一次svn提交的diff信息时,从数据库读取该条svn提交的相关信息,其可以包括但不限于:文件路径、提交人员、log。

步骤S318,获取svn提交的文件路径列表。

步骤S320,从文件路径列表中选取任意一条尚未遍历的文件路径。

步骤S322,可以实时从svn仓库中获取当前提交版本与前一次提交版本之间的diff信息。继续执行步骤S326。

步骤S324,如果用户点击选取的是与该redmine单号关联的当前提交版本与最早一次提交版本之间的对比结果,则可以实时从svn仓库中获取当前提交版本与最早一次提交版本之间的diff信息。继续执行步骤S326。

步骤S326,判断文件路径列表是否已经全部遍历完毕,如果没有遍历完毕,则返回步骤S320;如果全部遍历完毕,则继续执行步骤S328。

步骤S328,在前端界面展示当前提交版本与前一次提交版本之间的diff信息或者当前提交版本与最早一次提交版本之间的diff信息。由此便可以结合最后提交的版本与第一次提交的版本之间的差异直接查阅全部diff信息,而不需要逐个查看每一次提交所产生的diff信息。

根据本发明实施例,还提供了一种文件内容的显示装置的实施例,图4是根据本发明实施例的文件内容的显示装置的结构框图,如图4所示,该文件内容的显示装置可以包括:验证模块10,用于对登录用户进行权限验证;第一获取模块20,用于在登录用户通过权限验证后,获取与登录用户的用户标识对应的记录标识,其中,记录标识用于索引登录用户在版本管理服务器中查阅的更新文件内容;显示模块30,用于将与记录标识关联的历次更新文件内容显示给登录用户。

可选地,图5是根据本发明优选实施例的文件内容的显示装置的结构框图,如图5所示,上述装置还可以包括:第二获取模块40,用于获取文件更新通知消息,其中,文件更新通知消息是在对本地文件内容进行更新并向版本管理服务器提交更新文件内容的过程中触发的,本地文件内容为版本管理服务器中存储的对应文件的副本;处理模块50,用于从文件更新通知消息获取记录标识,并在记录标识与更新文件内容之间建立对应关系。

可选地,处理模块50可以包括:第一解析单元(图中未示出),用于对文件更新通知消息进行解析,从文件更新通知消息中获取日志信息;第二解析单元(图中未示出),用于对日志信息进行解析,从日志信息中获取记录标识。

可选地,如图5所示,上述装置还可以包括:确定模块60,用于确定登录用户选取的第一版本的更新文件内容与第二版本的更新文件内容,其中,第一版本晚于第二版本;第三获取模块70,用于获取第一版本的更新文件内容与第二版本的更新文件内容之间的差异信息,并对差异信息进行显示。

可选地,第三获取模块70可以包括:获取单元(图中未示出),根据记录标识获取由第一版本的更新文件内容构成的文件路径列表;选取单元(图中未示出),从文件路径列表中选取任意尚未遍历的文件路径;比较单元(图中未示出),将通过选取的文件路径获取到的更新文件与第二版本的更新文件内容中对应的文件进行比较,得到与选取的文件路径对应的差异内容;判断单元(图中未示出),判断文件路径列表是否已经全部遍历完毕,如果没有遍历完毕,则返回选取单元;如果全部遍历完毕,则将每次选取的文件路径对应的差异内容组成差异信息。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1