代码文件处理方法、装置、设备及存储介质与流程

    专利2022-07-08  96


    本申请实施例涉及计算机技术领域,特别涉及一种代码文件处理方法、装置、设备及存储介质。



    背景技术:

    在软件项目的开发过程中,常常需要开发人员之间分工合作。

    以团队合作开发软件项目为例,软件项目可以包括多个功能模块,每个功能模块由开发人员编写的代码实现,每个功能模块的代码都有对应的开发人员编写。例如,软件项目包括功能模块a和功能模块b,开发人员1负责功能模块a的代码编写,开发人员2负责功能模块b的代码编写。

    然而,由于不同开发人员的代码编写风格不一,造成软件项目中的诸多代码风格不一,从而导致代码维护难度大。



    技术实现要素:

    本申请实施例提供了一种代码文件处理方法、装置、设备及存储介质,能够将代码文件的代码风格统一,减小代码文件的维护难度,提高代码文件的维护效率。所述技术方案如下:

    根据本申请实施例的一个方面,提供了一种代码文件处理方法,所述方法包括:

    获取待进行风格转换的原始代码文件;

    获取风格配置文件,所述风格配置文件用于规定代码风格;

    根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到处理后代码文件;

    将所述处理后代码文件提交至远程代码仓库中进行存储。

    根据本申请实施例的一个方面,提供了一种代码文件处理方法,所述方法包括:

    接收原始代码文件对应的处理后代码文件的提交版本,所述处理后代码文件是基于风格配置文件对所述原始代码文件进行风格转换后得到的文件,所述风格配置文件用于规定代码风格;

    根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本;

    基于所述校验版本对所述提交版本进行合规校验;

    若所述提交版本通过所述合规校验,则将所述提交版本存储至远程代码仓库中。

    根据本申请实施例的一个方面,提供了一种代码文件处理装置,所述装置包括:

    代码文件获取模块,用于获取待进行风格转换的原始代码文件;

    配置文件获取模块,用于获取风格配置文件,所述风格配置文件用于规定代码风格;

    代码风格调整模块,用于根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到处理后代码文件;

    代码文件提交模块,用于将所述处理后代码文件提交至远程代码仓库中进行存储。

    根据本申请实施例的一个方面,提供了一种代码文件处理装置,所述装置包括:

    代码文件接收模块,用于接收原始代码文件对应的处理后代码文件的提交版本,所述处理后代码文件是基于风格配置文件对所述原始代码文件进行风格转换后得到的文件,所述风格配置文件用于规定代码风格;

    代码文件处理模块,用于根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本;

    代码文件校验模块,用于基于所述校验版本对所述提交版本进行合规校验;

    代码文件存储模块,用于若所述提交版本通过所述合规校验,则将所述提交版本存储至远程代码仓库中。

    根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述代码文件处理方法。

    根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述代码文件处理方法。

    根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述代码文件处理方法。

    本申请实施例提供的技术方案可以带来如下有益效果:

    根据风格配置文件,将获取的原始代码文件的代码风格调整处理成统一的代码风格,实现了自动统一代码文件的代码风格的功能,从而减小代码文件维护的难度,进而提高代码文件维护的效率。

    另外,通过将提交版本的代码风格与校验版本的代码风格进行合规校验,实现自动校验提交版本的代码风格,从而保证远程代码仓库中的代码文件的代码风格的统一性,从而提高了代码文件维护的效率。

    附图说明

    为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1是本申请一个实施例提供的方案实施环境的示意图;

    图2-6是本申请实施例提供的代码文件处理方法的流程图;

    图7-9是本申请实施例提供的代码文件处理装置的框图。

    具体实施方式

    为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

    请参考图1,其示出了本申请一个实施例提供的方案实施环境的示意图。该方案实施环境可以实现成为一个应用程序开发环境的系统架构。该方案实施环境可以包括:开发者终端10和服务器20。

    开发者终端10可以是诸如pc(personalcomputer,个人计算机)、笔记本电脑等电子设备。开发者终端10中可以安装运行有软件开发工具,该软件开发工具是一种将编程语言代码化并编译执行的工具。可选地,开发人员可以通过该软件开发工具对代码执行编写、修改、检查、运行等操作。

    服务器20用于存储和检测开发者终端10所上传的代码。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。

    开发者终端10与服务器20之间可以通过网络进行通信。

    示例性地,以安装运行有软件开发工具的客户端为例。开发人员在安装运行有软件开发工具的客户端中进行软件项目的代码编写,然后再通过客户端将完成的代码上传至软件项目对应的存储服务器中。可选地,在上传代码之前,可以对代码的风格进行转换、检查、修改等操作。

    请参考图2,其示出了本申请一个实施例提供的代码文件处理方法的流程图。该方法各步骤的执行主体可以是图1所示方案实施环境中的开发者终端10。该方法可以包括如下几个步骤(201~204):

    步骤201,获取待进行风格转换的原始代码文件。

    在本申请实施例中,原始代码文件是指待进行风格转换的代码文件。其中,代码文件用于存放代码。代码是指按照一定的程序设计语言规范书写的人类可读的计算机语言指令。其中程序设计语言是用于书写计算机程序的语言,诸如c (thec programminglanguage/cplusplus,c 程序设计语言)、c(cprogramminglanguage,c程序设计语言)、java(java计算机编程语言)、javascript(js,javascript脚本语言)等,即代码可以根据不同的程序设计语言分成不同类型的代码。

    可选地,代码还可以包括不同的风格。例如每行代码的最大字符宽度不同、函数参数的换行规则不同、添加空格的规则不同等。可选地,不同的开发人员拥有不同的代码编写风格。例如,开发人员甲采用函数参数换行规则a,而开发人员乙采用函数参数换行规则b。可选地,同一开发人员在不同时期的代码编写风格也会不一致。例如,开发人员甲在2020年采用了添加空格的规则a编写代码,而在2010年采用了添加空格的规则b编写代码。

    可选地,原始代码文件可以根据开发人员输入直接获取,即开发人员的输入为待进行风格转换的原始代码文件。

    可选地,原始代码文件可以根据存储原始代码文件的路径获取。具体方法如下:

    1、获取待进行风格转换的目标文件路径;

    2、检测目标文件路径的文件是否为代码文件;若目标文件路径的文件为代码文件,则确定目标文件路径的文件为待进行风格转换的原始代码文件。

    其中,目标文件路径是指目标文件的存储路径。根据目标文件的存储路径可以查询并获取到该路径下的目标文件。基于目标文件,判断其是否为代码文件,若是,则确定该目标文件为待进行风格转换的原始代码文件。若不是,则显示提示信息,如提示输入错误。可选地,可以根据文件扩展名的后缀判定目标文件是否为代码文件。例如,文件扩展名的后缀为“.c”、“.h”、“.cpp”、“.java”等的文件可确定为原始代码文件。

    可选地,原始代码文件还可以根据存储原始代码文件的文件目录获取。具体方法如下:

    1、获取待进行风格转换的目标文件目录;

    2、检测目标文件目录中包含的文件是否为代码文件;选取目标文件目录中的代码文件,作为待进行风格转换的原始代码文件。

    其中,可以通过遍历目标文件目录,过滤非代码文件,以获取代码文件,并将获取的代码文件确定为待进行风格转换的原始代码文件。可选地,目标文件目录中可以包括多个代码文件,如此可以批量获取原始代码文件。

    参考图3,文件读取单元301可以根据开发人员输入的文件或者目录,来获取原始代码文件。

    步骤202,获取风格配置文件,该风格配置文件用于规定代码风格。

    风格配置文件用于规定代码风格。例如,在获取原始代码文件a与原始代码文件b之后,可以将原始代码文件a和原始代码文件b的代码风格依照风格配置文件所规定的代码风格进行转换,即转换后的原始代码文件a和原始代码文件b的代码风格与风格配置文件所规定的代码风格一致。可选地,针对代码有多种类型,诸如c 、c、java、javascript等,风格配置文件中可以包括多种类型的代码对应类型的风格配置文件,且可以根据获取的原始代码文件中的代码类型,提取风格配置文件中对应类型的风格配置文件。例如,获取的原始代码文件为c 类型的代码文件,则提取风格配置文件中与c 类型的代码文件所对应的风格配置文件。

    可选地,风格配置文件可以包括远程风格配置文件和本地项目风格配置文件。其中,远程风格配置文件是指存储在服务器中的风格配置文件,本地项目风格配置文件是指存储在开发者终端中的风格配置文件。可选地,可以将获取的远程风格配置文件存储在开发者终端,即新的本地项目风格配置文件,以备网络不可使用的状况下获取使用。可选地,开发人员可以从服务器中获取远程风格配置文件,从开发者终端中获取本地项目风格配置文件。

    可选地,上述本地项目风格配置文件可以包括自定义的项目风格配置文件,该自定义的项目风格配置文件是指项目的开发人员自行设定的风格配置文件。例如,远程风格配置文件中的每行代码的最大字符宽度为a,但项目的开发人员认为该风格配置与项目的风格配置不匹配,则可以自行设定每行代码的最大字符宽度为b,生成并采用自定义的项目风格配置文件。

    可选地,所需获取的风格配置文件默认为远程风格配置文件,该远程风格配置文件会根据需求进行实时更新,即保持为最新的风格配置文件。可选地,在网络不可用的情况下,可以通过获取本地项目风格配置文件(或者自定义的项目风格配置文件),保证原始代码文件的代码风格的转换正常运行,如此可以实现代码文件的代码风格的离线转换,提高了转换的可选择性。

    在一个示例中,项目的风格配置文件的获取过程具体如下:

    1、检测原始代码文件是否采用自定义的项目风格配置;

    2、在原始代码文件未采用自定义的项目风格配置的情况下,若与服务器之间的网络连接可用,则向服务器发送配置文件获取请求,接收来自于服务器的风格配置文件,其中,配置文件获取请求用于请求获取服务器中存储的风格配置文件;若与服务器之间的网络不可用,则从本地存储单元中获取风格配置文件。

    可选地,自定义的项目风格配置文件预先被保存在项目的根目录中,以特定的文件名作为区分。例如,将自定义的项目风格配置文件命名为开发人员名称 “风格配置文件”、项目名称 “风格配置文件”等。在项目的风格配置文件的获取过程,首先对项目的根目录进行扫描,若项目的根目录中检测到风格配置文件,则获取该风格配置文件,即表明对源代码文件采用的是自定义的项目风格配置文件。若项目的根目录中没有检测到风格配置文件,则表明项目未对源代码文件采用自定义的项目风格配置,则默认获取远程风格配置文件。其中,若与服务器之间的网络不可用,则可从本地存储单元中获取本地项目风格配置文件。参考图3,配置文件解析单元302可以从本地读取项目风格配置文件,还可以通过http(hypertexttransferprotocol,超文本传输协议)从服务器获取远程风格配置文件。

    可选地,远程风格配置文件可以被预先设置在服务器中,并支持http请求返回。其中,http是指请求-响应协议,即接收到远程风格配置文件获取请求,http则响应返回远程风格配置文件。

    在获取风格配置文件后,基于风格配置文件,解析获取其每一项风格配置的键值对,即可以根据“键”得到每一项风格配置的具体内容。例如,获取的远程风格配置文件是json(javascriptobjectnotation,js对象简谱)格式的,则需要对其进行解析来获得每一项具体风格配置的键值对,然后根据键值对获得风格配置文件每一项的具体风格配置内容。可选地,可以将获取的键值对写入内存中,还可以将键值对写入本地储存单元中,以便后续调取使用。

    步骤203,根据风格配置文件对原始代码文件的代码风格进行调整处理,得到处理后代码文件。

    可选地,对原始代码文件的代码风格进行调整处理的过程包括:获取原始代码文件中代码的语法树;基于风格配置文件和语法树,重写原始代码文件中的代码,得到处理后代码文件。

    其中,获取具体的风格配置内容包括:基于原始代码文件的代码类型,调取风格配置文件中的对应类型的风格配置的键值对,然后根据对应的键值对,可以提取该类型的风格配置的具体风格配置内容。例如:c 类型的原始代码文件,对应调取c 类型的具体风格配置内容。

    获取处理后代码文件的内容包括:基于原始代码文件,生成代码的语法树,遍历语法树的各个单元,再根据风格配置文件对应的具体风格配置内容,将代码写回原有的代码文件中,生成中间文件,即文本格式的代码文件。最后做出格式调整,得到处理后的代码文件。由于上述操作为幂等操作,不会对代码的执行效果产生影响,即修改后的代码文件与原始代码文件的作用效果一致,仅存在代码风格差异。

    参考图3,文件读取单元301基于获取的原始代码文件生成语法树解析格式的原始代码文件,再根据配置文件解析单元302从风格配置文件中提取的具体风格配置内容,生成修改后的代码文件,并以文件或者目录的形式输出。

    步骤204,将处理后代码文件提交至远程代码仓库中进行存储。

    待获取处理后的代码文件后,将其提交至远程代码仓库中进行存储。如此,其他开发人员便可以从远程代码仓库中拉取最新代码风格的代码文件,实现了代码文件的资源共享。

    可选地,提交至远程代码仓库中的代码文件为远程代码,保留在本地的代码文件为本地代码。

    综上所述,本申请实施例提供的技术方案,根据风格配置文件,将获取的原始代码文件的代码风格调整处理成统一的代码风格,实现了自动统一代码文件的代码风格的功能,从而减小代码文件维护的难度,进而提高代码文件维护的效率。

    另外,通过将远程风格配置文件保存在本地,在网络不可用的情况下,可调取保存在本地的远程风格配置文件,保证原始代码文件的代码风格转换过程,实现了原始代码文件的代码风格离线转换,提高了操作的可选择性。

    另外,通过基于目标文件的目录,获取原始代码文件,实现了原始代码文件的批量获取,进而提高了原始代码文件转换的效率。

    请参考图4,其示出了本申请另一个实施例提供的代码文件处理方法的流程图。该方法各步骤的执行主体可以是图1所示方案实施环境中的服务器20。该方法可以包括如下几个步骤(401~404):

    步骤401,接收原始代码文件对应的处理后代码文件的提交版本。

    其中,上述处理后代码文件是基于风格配置文件对原始代码文件进行风格转换后得到的文件,该风格配置文件用于规定代码风格。有关风格配置文件的介绍说明可参见上文实施例,此处不再赘述。

    提交版本是指一版用于提交至远程代码仓库的处理后代码文件。可选地,同一项目中的不同的原始代码文件对应的处理后代码文件的提交版本的代码风格一致。

    可选地,在接收原始代码文件对应的处理后代码文件的提交版本之后,还可以对该提交版本进行初步筛选。

    在一个示例中,检测提交版本是否属于文件白名单,该文件白名单用于指示需要进行风格校验的代码文件。若提交版本属于文件白名单,则执行下述根据风格配置文件对原始代码文件的代码风格进行调整处理,得到原始代码文件对应的处理后代码文件的校验版本的步骤。

    在另一个示例中,检测提交版本是否属于文件黑名单,该文件黑名单用于指示不需要进行风格校验的代码文件;若提交版本不属于文件黑名单,则执行下述根据风格配置文件对原始代码文件的代码风格进行调整处理,得到原始代码文件对应的处理后代码文件的校验版本的步骤。

    可选地,文件白名单或者文件黑名单中的代码文件可以自定义设置,本申请实施例在此不作限定。例如,提交版本中包括项目代码文件和第三方代码文件,将第三方的代码文件加入文件黑名单,则该第三方的代码文件不需要进行风格校验,只需检验项目代码文件。可选地,当需要进行风格校验的代码文件通过校验时,不需要进行风格校验的代码文件也会存储至远程代码仓库中。当需要进行风格校验的代码文件未通过校验时,不需要进行风格校验的代码文件也无法存储至远程代码仓库。

    可选地,提交版本的代码文件内容可以通过版本控制系统提交的文本差异内容和文件列表获得。例如当采用svn(subversion,软件项目版本控制管理系统)、git(分布式版本控制系统)等版本控制系统时,版本控制系统每次的提交都包含了提交版本的文本差异内容和文件列表。其中,文本差异内容是指原始代码文件的代码风格转换过程中所对应的修改内容。

    参考图5,在获取提交版本后,解析单元501解析项目最新的文件白名单和文件黑名单。同时,解析单元501对提交版本进行版本解析,具体内容如下:调取文件列表中的代码文件,再根据对应的文本差异内容,从而获取最新的代码文件内容。最后,将文件列表与文件白名单或文件黑名单进行匹配,得到文件列表中需要检查的代码文件列表和对应的代码文件内容。

    步骤402,根据风格配置文件对原始代码文件的代码风格进行调整处理,得到原始代码文件对应的处理后代码文件的校验版本。

    步骤402中的校验版本生成过程与上述步骤203中的修改后代码文件生成过程类似,不同之处在于修改后代码文件生成过程的执行主体是开发者终端,校验版本生成过程的执行主体是服务器。

    可选地,原始代码文件对应的校验版本与提交版本所采用的风格配置文件一致。当提交版本所采用的风格配置文件是远程风格配置文件时,则校验版本的风格配置文件为远程风格配置文件。当提交版本所采用的风格配置文件是项目风格配置文件,则校验版本的风格配置文件为项目风格配置文件。其中,项目风格配置文件包括统一的本地项目风格配置文件或者自定义的本地项目风格配置文件。参考图5,格式检查单元502基于获取的原始代码文件,根据对应的远程配置文件(或者项目风格配置文件),得到原始代码文件对应的处理后代码文件的校验版本。

    步骤403,基于校验版本对提交版本进行合规校验。

    在本申请实施例中,合规校验用于校验提交版本和校验版本的代码风格是否一致。其中,校验版本为校验标准文件,提交版本为校验对象。若提交版本的代码风格与校验版本的代码风格一致,则确定提交版本合规校验通过。若提交版的代码风格与校验版本的代码风格不一致,则确定提交版本合规校验未通过。例如,参考图5,格式检查单元502将校验版本的代码文本内容与解析单元501输出的提交版本的代码文本内容进行合规校验,来判断提交版本的代码风格是否符合审核标准。

    步骤404,若提交版本通过合规校验,则将提交版本存储至远程代码仓库中。

    提交版本通过合规校验,即表明提交版本的代码风格符合审核标准,则将提交版本存储指远程代码仓库中。可选地,提交内容包括需要检查的代码文件和不需要检查的代码文件。

    在一个示例中,参考图6,通过合规校验的提交版本会被存储在临时远程代码仓库中,在通过评审员的评审之后,才会被存储至远程代码仓库中。其中评审员可以是项目负责人、其他项目开发者等。未通过合规校验和评审的提交版本则被退回开发者终端。

    在一个示例中,若提交版本未通过合规校验,则获取提交版本与校验版本之间的差异内容;生成与差异内容对应的查看链接,该查看链接用于查看差异内容。

    其中,差异内容是指提交版本与校验版本之间的代码风格具体差异内容。例如,提交版本第1行代码的最大字符宽度为a,而校验版本第1行代码的最大字符宽度为b,则该差异内容为第1行代码的最大字符宽度为b,而不是a。

    查看链接是用于定位差异内容的链接,该查看链接具有唯一性,即一份差异内容对应一个查看链接。

    可选地,差异内容可以被存储在服务器中,并可以通过访问对应的查看链接,获取差异内容。如此便于开发人员定位具体差异内容,并可以根据差异内容调整代码编写风格,从而培养开发人员良好的代码编写风格。参考图5,文件差异提交单元503包括http服务单元和文件存储服务单元。当提交版本与校验版本未通过合规校验时,文件差异提交单元503将接收的差异内容存储至文件存储服务单元,并通过http服务单元生成一个唯一的url(uniformresourcelocator,统一资源定位符),返回给开发者终端。开发人员可以通过开发者终端访问该url,以获取文件差异。

    综上所述,本申请实施例提供的技术方案,通过将提交版本的代码风格与校验版本的代码风格进行合规校验,实现自动校验提交版本的代码风格,从而保证远程代码仓库中的代码风格的统一性,便于代码文件的维护,从而提高了代码文件维护的效率。

    另外,通过提供可自定义的白名单和黑名单功能,减少需要风格校验的代码文件,进而提高代码文件处理的效率。

    另外,通过生成提交版本与校验版本的差异内容和对应的查看链接,开发人员可以通过访问查看链接获取差异内容,进行差异内容的学习、修改等操作,从而培养了开发人员良好的代码编写风格,进而提高了代码文件的维护效率。

    下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

    请参考图7,其示出了本申请一个实施例提供的代码文件处理装置的框图。该装置具有实现上述开发者终端侧的代码文件处理方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置700可以包括:代码获文件取模块701、配置文件获取模块702、代码风格调整模块703和代码文件提交模块704。

    代码文件获取模块701,用于获取待进行风格转换的原始代码文件。

    配置文件获取模块702,用于获取风格配置文件,所述风格配置文件用于规定代码风格。

    代码风格调整模块703,用于根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到处理后代码文件。

    代码文件提交模块704,用于将所述处理后代码文件提交至远程代码仓库中进行存储。

    在一个示例性实施例中,所述代码风格调整模块703用于获取所述原始代码文件中代码的语法树;基于所述风格配置文件和所述语法树,重写所述原始代码文件中的代码,得到所述处理后代码文件。

    在一个示例性实施例中,所述配置文件获取模块702用于检测所述原始代码文件是否采用自定义的项目风格配置;在所述原始代码文件未采用所述自定义的项目风格配置的情况下,若与服务器之间的网络连接可用,则向所述服务器发送配置文件获取请求,接收来自于所述服务器的所述风格配置文件,其中,所述配置文件获取请求用于请求获取所述服务器中存储的风格配置文件;若与所述服务器之间的网络不可用,则从本地存储单元中获取所述风格配置文件。

    在一个示例性实施例中,所述代码文件获取模块701用于获取待进行风格转换的目标文件路径;检测所述目标文件路径的文件是否为代码文件;若所述目标文件路径的文件为所述代码文件,则确定所述目标文件路径的文件为待进行风格转换的所述原始代码文件。

    或者,所述代码文件获取模块701用于获取待进行风格转换的目标文件目录;检测所述目标文件目录中包含的文件是否为代码文件;选取所述目标文件目录中的所述代码文件,作为待进行风格转换的所述原始代码文件。

    综上所述,本申请实施例提供的技术方案,根据风格配置文件,将获取的原始代码文件的代码风格调整处理成统一的代码风格,实现了自动统一代码文件的代码风格的功能,从而减小代码文件维护的难度,进而提高代码文件维护的效率。

    请参考图8,其示出了本申请另一个实施例提供的代码文件处理装置的框图。该装置具有实现上述服务器侧的代码文件处理方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置800可以包括:代码文件接收模块801、代码文件处理模块802、代码文件校验模块803和代码文件存储模块804。

    代码文件接收模块801,用于接收原始代码文件对应的处理后代码文件的提交版本,所述处理后代码文件是基于风格配置文件对所述原始代码文件进行风格转换后得到的文件,所述风格配置文件用于规定代码风格。

    代码文件处理模块802,用于根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本。

    代码文件校验模块803,用于基于所述校验版本对所述提交版本进行合规校验。

    代码文件存储模块804,用于若所述提交版本通过所述合规校验,则将所述提交版本存储至远程代码仓库中。

    在一个示例性实施例中,如图9所示,所述装置800还包括名单检测模块805。

    可选地,名单检测模块805,用于检测所述提交版本是否属于文件白名单,所述文件白名单用于指示需要进行风格校验的代码文件。代码文件处理模块802,还用于若所述提交版本属于所述文件白名单,则执行所述根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本的步骤。

    可选地,名单检测模块805,用于检测所述提交版本是否属于文件黑名单,所述文件黑名单用于指示不需要进行风格校验的代码文件。代码文件处理模块902,还用于若所述提交版本不属于所述文件黑名单,则执行所述根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本的步骤。

    在一个示例性实施例中,如图9所示,所述装置800包括:差异内容获取模块806和查看链接生成模块807。

    差异内容获取模块806,用于若所述提交版本未通过所述合规校验,则获取所述提交版本与所述校验版本之间的差异内容。

    查看链接生成模块807,用于生成与所述差异内容对应的查看链接,所述查看链接用于查看所述差异内容。

    综上所述,本申请实施例提供的技术方案,通过将提交版本的代码风格与校验版本的代码风格进行合规校验,实现自动校验提交版本的代码风格,从而保证远程代码仓库中的代码文件的代码风格的统一性,从而提高了代码文件维护的效率。

    需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

    在一个示例性实施例中,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述代码文件处理方法。

    在一个示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述代码文件处理方法。

    在一个示例性实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述代码文件处理方法。

    应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

    以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。


    技术特征:

    1.一种代码文件处理方法,其特征在于,所述方法包括:

    获取待进行风格转换的原始代码文件;

    获取风格配置文件,所述风格配置文件用于规定代码风格;

    根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到处理后代码文件;

    将所述处理后代码文件提交至远程代码仓库中进行存储。

    2.根据权利要求1所述的方法,其特征在于,所述根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到处理后代码文件,包括:

    获取所述原始代码文件中代码的语法树;

    基于所述风格配置文件和所述语法树,重写所述原始代码文件中的代码,得到所述处理后代码文件。

    3.根据权利要求1所述的方法,其特征在于,所述获取风格配置文件,包括:

    检测所述原始代码文件是否采用自定义的项目风格配置;

    在所述原始代码文件未采用所述自定义的项目风格配置的情况下,若与服务器之间的网络连接可用,则向所述服务器发送配置文件获取请求,接收来自于所述服务器的所述风格配置文件,其中,所述配置文件获取请求用于请求获取所述服务器中存储的风格配置文件;

    若与所述服务器之间的网络不可用,则从本地存储单元中获取所述风格配置文件。

    4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取待进行风格转换的原始代码文件,包括:

    获取待进行风格转换的目标文件路径;检测所述目标文件路径的文件是否为代码文件;若所述目标文件路径的文件为所述代码文件,则确定所述目标文件路径的文件为待进行风格转换的所述原始代码文件;

    或者,

    获取待进行风格转换的目标文件目录;检测所述目标文件目录中包含的文件是否为代码文件;选取所述目标文件目录中的所述代码文件,作为待进行风格转换的所述原始代码文件。

    5.一种代码文件处理方法,其特征在于,所述方法包括:

    接收原始代码文件对应的处理后代码文件的提交版本,所述处理后代码文件是基于风格配置文件对所述原始代码文件进行风格转换后得到的文件,所述风格配置文件用于规定代码风格;

    根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本;

    基于所述校验版本对所述提交版本进行合规校验;

    若所述提交版本通过所述合规校验,则将所述提交版本存储至远程代码仓库中。

    6.根据权利要求5所述的方法,其特征在于,所述接收原始代码文件对应的处理后代码文件的提交版本之后,还包括:

    检测所述提交版本是否属于文件白名单,所述文件白名单用于指示需要进行风格校验的代码文件;若所述提交版本属于所述文件白名单,则执行所述根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本的步骤;

    或者,

    检测所述提交版本是否属于文件黑名单,所述文件黑名单用于指示不需要进行风格校验的代码文件;若所述提交版本不属于所述文件黑名单,则执行所述根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本的步骤。

    7.根据权利要求5或6所述的方法,其特征在于,所述基于所述校验版本对所述提交版本进行合规校验之后,还包括:

    若所述提交版本未通过所述合规校验,则获取所述提交版本与所述校验版本之间的差异内容;

    生成与所述差异内容对应的查看链接,所述查看链接用于查看所述差异内容。

    8.一种代码文件处理装置,其特征在于,所述装置包括:

    代码文件获取模块,用于获取待进行风格转换的原始代码文件;

    配置文件获取模块,用于获取风格配置文件,所述风格配置文件用于规定代码风格;

    代码风格调整模块,用于根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到处理后代码文件;

    代码文件提交模块,用于将所述处理后代码文件提交至远程代码仓库中进行存储。

    9.一种代码文件处理装置,其特征在于,所述装置包括:

    代码文件接收模块,用于接收原始代码文件对应的处理后代码文件的提交版本,所述处理后代码文件是基于风格配置文件对所述原始代码文件进行风格转换后得到的文件,所述风格配置文件用于规定代码风格;

    代码文件处理模块,用于根据所述风格配置文件对所述原始代码文件的代码风格进行调整处理,得到所述原始代码文件对应的处理后代码文件的校验版本;

    代码文件校验模块,用于基于所述校验版本对所述提交版本进行合规校验;

    代码文件存储模块,用于若所述提交版本通过所述合规校验,则将所述提交版本存储至远程代码仓库中。

    10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至4任一项所述的代码文件处理方法,或如权利要求5至7任一项所述的代码文件处理方法。

    11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至4任一项所述的代码文件处理方法,或如权利要求5至7任一项所述的代码文件处理方法。

    技术总结
    本申请公开了一种代码文件处理方法、装置、设备及存储介质,属于计算机技术领域。所述方法包括:获取待进行风格转换的原始代码文件;获取风格配置文件,该风格配置文件用于规定代码风格;根据风格配置文件对原始代码文件的代码风格进行调整处理,得到处理后代码文件;将处理后代码文件提交至远程代码仓库中进行存储。本申请实施例提供的技术方案中,根据风格配置文件,将获取的原始代码文件的代码风格调整处理成统一的代码风格,实现了自动统一代码文件的代码风格的功能,从而减小代码文件维护的难度,进而提高代码文件维护的效率。

    技术研发人员:金泽豪
    受保护的技术使用者:百果园技术(新加坡)有限公司
    技术研发日:2020.10.23
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23222.html

    最新回复(0)