CN104317950B - 代码的合规检查方法及装置 - Google Patents
代码的合规检查方法及装置 Download PDFInfo
- Publication number
- CN104317950B CN104317950B CN201410638338.XA CN201410638338A CN104317950B CN 104317950 B CN104317950 B CN 104317950B CN 201410638338 A CN201410638338 A CN 201410638338A CN 104317950 B CN104317950 B CN 104317950B
- Authority
- CN
- China
- Prior art keywords
- listed files
- file
- inspection
- hash table
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种代码的合规检查方法及装置,其中,所述方法中,通过比对所述检查文件列表和历史基线,以及,检查所述当前检查文件列表中是否存在标记文件上述两者方式,确定出第一排除文件列表和第二排除文件列表,作为历史代码,保证了历史代码确定的准确性,实现了准确界定代码合规检查的范围。
Description
技术领域
本发明涉及代码检查技术领域,尤其涉及一种代码的合规检查方法及装置。
背景技术
现有的代码合规检查方法对项目代码检查时,由项目组指定项目代码中的历史代码,排除历史代码,再对排除历史代码后的代码进行检查。
然而,由项目组指定项目代码中历史代码,一是手工指定操作麻烦,二是无法保证指定的客观性,因而造成项目代码检查工作不能准确进行。
因此,实现准确界定代码合规检查的范围是本领域亟待解决的问题。
发明内容
本发明实施例提供了一种代码的合规检查方法及装置,以准确界定代码合规检查的范围。
为实现上述目的,现提出的方案如下:
一种代码的合规检查方法,包括:
获取项目全量代码;
构建对应所述项目全量代码的检查文件列表;
判断是否有历史基线;
判断有历史基线,比对所述检查文件列表和历史基线文件列表;
将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
检查当前检查文件列表中是否存在标记文件,所述标记文件为标记历史代码块的开始空文件和结束空文件;
检查所述当前检查文件列表中存在所述标记文件,将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表。
优选地,所述构建对应所述项目全量代码的检查文件列表,包括:
将所述项目全量代码构建成File对象;
生成对应所述File对象的检查文件列表。
优选地,还包括:
从所述当前检查文件列表中删除所述第二排除文件列表,并更新所述检查文件列表;
检查是否存在组织级定义的排除特征文件;
将所述当前的检查文件列表中文件内容与所述排除特征文件定义的正则表达式匹配的文件全路径形成第三排除文件列表;
将所述第一排除文件列表和第二排除文件列表并入所述第三排除文件列表。
优选地,所述比对所述检查文件列表和历史基线文件列表,包括:
建立所述检查文件列表的哈希表,其中,所述检查文件列表的哈希表中的键为所述检查文件列表文件中文件内容的数字签名,所述检查文件列表的哈希表中的值为所述检查文件列表中文件的文件全路径;
构建所述历史基线中历史代码的历史文件列表;
建立所述历史文件列表的哈希表,其中,所述历史文件列表的哈希表中的键为所述历史文件列表中文件内容的数字签名,所述历史文件列表的哈希表中的值为所述历史文件列表中文件的文件全路径;
比较所述检查文件列表的哈希表中的键和历史文件列表的哈希表中的键;
其中,所述将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表,包括:
在所述检查文件列表的哈希表中的键中,确定与所述历史文件列表的哈希表中的键相同的键;
将与所述确定的键对应的所述检查文件列表的哈希表中的值作为第一排除文件列表。
优选地,所述检查所述当前检查文件列表中是否存在标记文件,包括:
提取所述当前检查文件列表中文件的最后修改时间;
建立所述当前检查文件列表的哈希表,其中,所述当前检查文件列表的哈希表中的键为换算成毫秒值的文件最后修改时间,所述当前检查文件列表的哈希表中的值为所述当前检查文件列表中文件的文件全路径;
将所述当前检查文件列表的哈希表中最小键作为项目开始编码时间;
判断所述标记文件的最后修改时间是否小于所述项目开始编码时间和预设时间的和;
其中,检查所述当前检查文件列表中存在所述标记文件,将所述检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表,包括:
判断所述标记文件的最后修改时间小于所述项目开始编码时间和预设时间的和,确定所述当前检查文件列表的哈希表中键在开始空文件时间和结束空文件时间之间的键;
将与所述确定的键对应的检查文件列表的哈希表中的值作为第二排除文件列表。
一种代码的合规检查装置,包括:
获取单元,用于获取项目全量代码;
第一构建单元,用于构建对应所述项目全量代码的检查文件列表;
历史基线判断单元,用于判断是否有历史基线;
比对单元,用于所述历史基线判断单元判断有历史基线,比对所述检查文件列表和历史基线文件列表;
第一文件列表形成单元,用于将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
第一更新单元,用于从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
第一检查单元,用于检查当前检查文件列表中是否存在标记文件,所述标记文件为标记历史代码块的开始空文件和结束空文件;
第二文件列表形成单元,用于检查所述当前检查文件列表中存在所述标记文件,将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表。
优选地,所述第一构建单元包括:
对象生成单元,用于将所述项目全量代码构建成File对象;
生成单元,用于生成对应所述File对象的检查文件列表。
优选地,还包括:
第二更新单元,用于从所述当前检查文件列表中删除所述第二排除文件列表,并更新所述检查文件列表;
第二检查单元,用于检查是否存在组织级定义的排除特征文件;
第三文件列表形成单元,用于所述第二检查单元判断存在所述排除特征文件,将所述当前的检查文件列表中文件内容与所述排除特征文件定义的正则表达式匹配的文件全路径形成第三排除文件列表;
合并单元,用于将所述第一排除文件列表和第二排除文件列表并入所述第三排除文件列表。
优选地,所述比对单元包括:
第一建立单元,用于建立所述检查文件列表的哈希表,其中,所述检查文件列表的哈希表中的键为所述检查文件列表文件中文件内容的数字签名,所述检查文件列表的哈希表中的值为所述检查文件列表中文件的文件全路径;
第二构建单元,用于构建所述历史基线文件列表;
第二建立单元,用于建立所述历史文件列表的哈希表,其中,所述历史文件列表的哈希表中的键为所述历史文件列表中文件内容的数字签名,所述历史文件列表的哈希表中的值为所述历史文件列表中文件的文件全路径;
第一比较单元,用于比较所述检查文件列表的哈希表中的键和历史文件列表的哈希表中的键;
其中,所述第一文件列表形成单元,包括:
第一确定单元,用于在所述检查文件列表的哈希表中的键中,确定与所述历史文件列表的哈希表中的键相同的键;
第一文件列表形成子单元,用于将与所述确定的键对应的所述检查文件列表的哈希表中的值作为第一排除文件列表。
优选地,所述第一检查单元,包括:
提取单元,用于提取所述当前检查文件列表中文件的最后修改时间;
第三建立单元,用于建立所述当前检查文件列表的哈希表,其中,所述当前检查文件列表的哈希表中的键为换算成毫秒值的文件最后修改时间,所述当前检查文件列表的哈希表中的值为所述当前检查文件列表中文件的文件全路径;
选定单元,用于将所述当前检查文件列表的哈希表中最小键作为项目开始编码时间;
判断单元,用于判断所述标记文件的最后修改时间是否小于所述项目开始编码时间和预设时间的和;
其中,所述第二文件列表形成单元包括:
第二确定单元,用于判断所述标记文件的最后修改时间小于所述项目开始编码时间和预设时间的和,确定所述当前检查文件列表的哈希表中键在开始空文件时间和结束空文件时间之间的键;
文件列表形成子单元,用于将与所述确定的键对应的检查文件列表的哈希表中的值作为第二排除文件列表。
从上述的技术方案可以看出,本发明实施例公开的代码的合规检查方法中,通过比对所述检查文件列表和历史基线,以及,检查所述当前检查文件子列表中是否存在标记文件上述两者方式,确定出第一排除文件列表和第二排除文件列表,作为历史代码,保证了历史代码确定的客观性,实现了准确界定代码合规检查的范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的代码的合规检查方法的流程图;
图2为本发明另一实施例公开的代码的合规检查方法的流程图;
图3为本发明另一实施例公开的代码的合规检查方法的流程图;
图4为本发明实施例公开的代码的合规检查装置的结构示意图;
图5为本发明另一实施例公开的代码的合规检查装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种代码的合规检查方法及装置,以准确界定代码合规检查的范围。
参见图1,本发明实施例公开的代码的合规检查方法,包括步骤:
S101、获取项目全量代码;
具体的,进行代码合规检查之前,先获取要检查的项目的全量代码。
S102、构建对应所述项目全量代码的检查文件列表;
优选地,在本发明的另一实施例中,构建对应所述项目全量代码的检查文件列表的方式可以为:
将所述项目全量代码构建成File对象;
生成对应所述File对象的检查文件列表。
具体的,本发明实施例公开的代码的合规检查方法在检查服务器中执行,所述检查服务器获取所述全量代码之后,将所述全量代码存放至所述检查服务器的某目录,将该目录以及其子目录下开发语言源文件,构建成File对象,并生成检查文件列表;
S103、判断是否有历史基线;
具体的,判断合规检查通知文件中历史基线属性是否为空来判断是否有历史基线,若为空,则说明没有历史基线,若不为空,则说明有历史基线。
判断有历史基线,执行S104、比对所述检查文件列表和历史基线文件列表;
S105、将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
需要说明的是,判断有历史基线,比对所述检查文件列表和历史基线文件列表,若所述检查文件列表中有与所述历史基线的文件内容相同的文件,说明所述项目全量代码中存在历史代码。
S106、从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
S107、检查当前检查文件列表中是否存在标记文件;
其中,所述标记文件为标记历史代码块的开始空文件和结束空文件;
优选地,所述标记文件为0字节空文件。
还需要说明的是,本步骤中的当前检查文件列表可以为判断有历史基线,从所述检查文件列表中排除所述第一排除文件列表后的文件列表,也可以是判断没有历史基线,构建的对应所述项目全量代码的检查文件列表。
检查所述当前检查文件列表中存在所述标记文件,执行S108、将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表。
由于标记文件为标记历史代码块的开始空文件和结束空文件,若所述当前检查文件列表中存在所述标记文件,说明当前检查文件列表对应的代码是存在历史代码,需要将历史代码排除。
本发明实施例公开的代码的合规检查方法中,通过比对所述检查文件列表和历史基线,以及,检查所述当前检查文件子列表中是否存在标记文件上述两者方式,确定出第一排除文件列表和第二排除文件列表,作为历史代码,保证了历史代码确定的准确性,实现了准确界定代码合规检查的范围。
参见图2,本发明另一实施例公开的代码的合规检查方法,包括步骤:
S201、获取项目全量代码;
S202、构建对应所述项目全量代码的检查文件列表;
S203、判断是否有历史基线;
判断有历史基线,执行S204、比对所述检查文件列表和历史基线文件列表;
S205、将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
S206、从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
S207、检查当前检查文件列表中是否存在标记文件;
其中,所述标记文件为标记历史代码块的开始空文件和结束空文件;
需要说明的是,本步骤中的当前检查文件可以为判断有历史基线,从所述检查文件列表中排除所述第一排除文件列表后的文件列表,也可以是判断没有历史基线,构建的对应所述项目全量代码的检查文件列表。
检查所述当前检查文件列表中存在所述标记文件,执行S208、将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表;
S209、从所述当前检查文件列表中删除所述第二排除文件列表,并更新所述检查文件列表;
S210、检查是否存在组织级定义的排除特征文件;
需要说明的是,本步骤中的当前检查文件列表可以为:判断没有历史基线,没有进行第一排除文件列表排除,也没有存在标记文件的文件列表,没有进行第二排除文件列表排除的文件列表,即为构建的对应所述项目全量代码的检查文件列表。
也可以为判断有历史基线,从所述检查文件列表中排除所述第一排除文件列表后的文件列表,此时,没有存在标记文件的文件列表,没有进行第二排除文件列表排除。
还可以是,判断有历史基线,从所述检查文件列表中排除所述第一排除文件列表后的文件列表,且存在标记文件的文件列表,再进行第二排除文件列表排除后的文件列表。
若存在所述排除特征文件,执行S211、将所述当前的检查文件列表中文件内容与所述排除特征文件定义的正则表达式匹配的文件全路径形成第三排除文件列表;
S212、将所述第一排除文件列表和第二排除文件列表并入所述第三排除文件列表。
本实施例需要说明的是,所述特征文件可以理解为满足用户需求而设定要排查的文件,可以根据不同需求进行设定。
本发明的另一实施例公开的代码的合规检查方法,如图3所示,包括步骤:
S301、获取项目全量代码;
S302、构建对应所述项目全量代码的检查文件列表;
S303、判断是否有历史基线;
判断有历史基线,执行S304、建立所述检查文件列表的哈希表;
其中,所述检查文件列表的哈希表中的键为所述检查文件列表文件中文件内容的数字签名,所述检查文件列表的哈希表中的值为所述检查文件列表中文件的文件全路径;
S305、构建所述历史基线中历史代码的历史文件列表;
S306、建立所述历史文件列表的哈希表;
其中,所述历史文件列表的哈希表中的键为所述历史文件列表中文件内容的数字签名,所述历史文件列表的哈希表中的值为所述历史文件列表中文件的文件全路径;
S307、比较所述检查文件列表的哈希表中的键和历史文件列表的哈希表中的键;
S308、在所述检查文件列表的哈希表中的键中,确定与所述历史文件列表的哈希表中的键相同的键;
S309、将与所述确定的键对应的所述检查文件列表的哈希表中的值作为第一排除文件列表;
S310、从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
S311、检查当前检查文件列表中是否存在标记文件;
其中,所述标记文件为标记历史代码块的开始空文件和结束空文件;
检查所述当前检查文件列表中存在所述标记文件,执行S312、将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表。
优选地,上述几个实施例中公开的代码的合规检查方法中,所述检查所述当前检查文件列表中是否存在标记文件的具体实现形式,可以包括:
提取所述当前检查文件列表中文件的最后修改时间;
建立所述当前检查文件列表的哈希表;
其中,所述当前检查文件列表的哈希表中的键为换算成毫秒值的文件最后修改时间,所述当前检查文件列表的哈希表中的值为所述当前检查文件列表中文件的文件全路径;
将所述当前检查文件列表的哈希表中最小键作为项目开始编码时间;
判断所述标记文件的最后修改时间是否小于所述项目开始编码时间和预设时间的和;
并且,上述几个实施例中公开的代码的合规检查方法中,所述检查所述当前检查文件列表中存在所述标记文件,将所述检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表的具体实现形式,可以包括:
判断所述开始空文件的最后修改时间小于所述项目开始编码时间和预设时间的和,确定所述当前检查文件列表的哈希表中键在开始空文件时间和结束空文件时间之间的键;
将与所述确定的键对应的检查文件列表的哈希表中的值作为第二排除文件列表。
还需要说明的是,本实施例中,预设时间一般由组织级规定,它表明的是项目组在开始往配置库中提交代码后一段时间内必须提交历史代码,一般可以为14天的毫秒值。
本发明另一实施例公开了一种代码的合规检查装置,参见图4,包括:
获取单元101,用于获取项目全量代码;
第一构建单元102,用于构建对应所述项目全量代码的检查文件列表;
历史基线判断单元103,用于判断是否有历史基线;
比对单元104,用于所述历史基线判断单元判断有历史基线,比对所述检查文件列表和历史基线文件列表;
第一文件列表形成单元105,用于将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
第一更新单元106,用于从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
第一检查单元107,用于检查当前检查文件列表中是否存在标记文件,所述标记文件为标记历史代码块的开始空文件和结束空文件;
第二文件列表形成单元108,用于检查所述当前检查文件列表中存在所述标记文件,将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表。
本发明实施例公开的代码的合规检查装置中,通过比对单元104比对所述检查文件列表和历史基线,以及,第一检查单元107检查所述当前检查文件子列表中是否存在标记文件上述两者方式,确定出第一排除文件列表和第二排除文件列表,作为历史代码,保证了历史代码确定的准确性,实现了准确界定代码合规检查的范围。
还需要说明的是,本实施例公开的代码的合规检查装置中各个单元的具体执行过程请参见对应图1的实施例,此处不再赘述。
优选地,在本发明另一实施例中,第一构建单元102包括:
对象生成单元,用于将所述项目全量代码构建成File对象;
生成单元,用于生成对应所述File对象的检查文件列表。
具体的,本实施例中各个单元的具体实现形式请参见对应方法的实施例,此处不再赘述。
本发明另一实施例还公开了一种代码的合规检查装置,参见图5,本实施例公开的代码的合规检查装置除包括:获取单元101、第一构建单元102、历史基线判断单元103、比对单元104、第一文件列表形成单元105、第一更新单元106、第一检查单元107和第二文件列表形成单元108以外,还包括:
第二更新单元109,用于从所述当前检查文件列表中删除所述第二排除文件列表,并更新所述检查文件列表;
第二检查单元110,用于检查是否存在组织级定义的排除特征文件;
第三文件列表形成单元111,用于所述第二检查单元判断存在所述排除特征文件,将所述当前的检查文件列表中文件内容与所述排除特征文件定义的正则表达式匹配的文件全路径形成第三排除文件列表;
合并单元112,用于将所述第一排除文件列表和第二排除文件列表并入所述第三排除文件列表。
需要说明的是,本实施例公开的代码的合规检查装置中各个单元的具体执行过程请参见对应图2的实施例,此处不再赘述。
优选地,本发明另一实施例中,比对单元104包括:
第一建立单元,用于建立所述检查文件列表的哈希表,其中,所述检查文件列表的哈希表中的键为所述检查文件列表文件中文件内容的数字签名,所述检查文件列表的哈希表中的值为所述检查文件列表中文件的文件全路径;
第二构建单元,用于构建所述历史基线文件列表;
第二建立单元,用于建立所述历史文件列表的哈希表,其中,所述历史文件列表的哈希表中的键为所述历史文件列表中文件内容的数字签名,所述历史文件列表的哈希表中的值为所述历史文件列表中文件的文件全路径;
第一比较单元,用于比较所述检查文件列表的哈希表中的键和历史文件列表的哈希表中的键;
其中,所述第一文件列表形成单元105,包括:
第一确定单元,用于在所述检查文件列表的哈希表中的键中,确定与所述历史文件列表的哈希表中的键相同的键;
第一文件列表形成子单元,用于将与所述确定的键对应的所述检查文件列表的哈希表中的值作为第一排除文件列表。
具体的,本实施例公开的各个单元的具体执行过程请参见对应图3的实施例,此处不再赘述。
优选地,本发明另一实施例中,第一检查单元107,包括:
提取单元,用于提取所述当前检查文件列表中文件的最后修改时间;
第三建立单元,用于建立所述当前检查文件列表的哈希表,其中,所述当前检查文件列表的哈希表中的键为换算成毫秒值的文件最后修改时间,所述当前检查文件列表的哈希表中的值为所述当前检查文件列表中文件的文件全路径;
选定单元,用于将所述当前检查文件列表的哈希表中最小键作为项目开始编码时间;
判断单元,用于判断所述标记文件的最后修改时间是否小于所述项目开始编码时间和预设时间的和;
其中,第二文件列表形成单元108包括:
第二确定单元,用于判断所述标记文件的最后修改时间小于所述项目开始编码时间和预设时间的和,确定所述当前检查文件列表的哈希表中键在开始空文件时间和结束空文件时间之间的键;
文件列表形成子单元,用于将与所述确定的键对应的检查文件列表的哈希表中的值作为第二排除文件列表。
具体的,本实施例公开的各个单元的具体执行过程请参见对应的方法实施例,此处不再赘述。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种代码的合规检查方法,其特征在于,包括:
获取项目全量代码;
构建对应所述项目全量代码的检查文件列表;
判断是否有历史基线;
判断有历史基线,比对所述检查文件列表和历史基线文件列表;
将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
检查当前检查文件列表中是否存在标记文件,所述标记文件为标记历史代码块的开始空文件和结束空文件;
检查所述当前检查文件列表中存在所述标记文件,将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表;
所述检查所述当前检查文件列表中是否存在标记文件,包括:
提取所述当前检查文件列表中文件的最后修改时间;
建立所述当前检查文件列表的哈希表,其中,所述当前检查文件列表的哈希表中的键为换算成毫秒值的文件最后修改时间,所述当前检查文件列表的哈希表中的值为所述当前检查文件列表中文件的文件全路径;
将所述当前检查文件列表的哈希表中最小键作为项目开始编码时间;
判断所述标记文件的最后修改时间是否小于所述项目开始编码时间和预设时间的和;
其中,检查所述当前检查文件列表中存在所述标记文件,将所述检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表,包括:
判断所述标记文件的最后修改时间小于所述项目开始编码时间和预设时间的和,确定所述当前检查文件列表的哈希表中键在开始空文件时间和结束空文件时间之间的键;
将与所述确定的键对应的检查文件列表的哈希表中的值作为第二排除文件列表。
2.根据权利要求1所述的方法,其特征在于,所述构建对应所述项目全量代码的检查文件列表,包括:
将所述项目全量代码构建成File对象;
生成对应所述File对象的检查文件列表。
3.根据权利要求1所述的方法,其特征在于,还包括:
从所述当前检查文件列表中删除所述第二排除文件列表,并更新所述检查文件列表;
检查是否存在组织级定义的排除特征文件;
若存在所述排除特征文件,将所述当前的检查文件列表中文件内容与所述排除特征文件定义的正则表达式匹配的文件全路径形成第三排除文件列表;
将所述第一排除文件列表和第二排除文件列表并入所述第三排除文件列表。
4.根据权利要求1所述的方法,其特征在于,所述比对所述检查文件列表和历史基线文件列表,包括:
建立所述检查文件列表的哈希表,其中,所述检查文件列表的哈希表中的键为所述检查文件列表文件中文件内容的数字签名,所述检查文件列表的哈希表中的值为所述检查文件列表中文件的文件全路径;
构建所述历史基线中历史代码的历史文件列表;
建立所述历史文件列表的哈希表,其中,所述历史文件列表的哈希表中的键为所述历史文件列表中文件内容的数字签名,所述历史文件列表的哈希表中的值为所述历史文件列表中文件的文件全路径;
比较所述检查文件列表的哈希表中的键和历史文件列表的哈希表中的键;
其中,所述将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表,包括:
在所述检查文件列表的哈希表中的键中,确定与所述历史文件列表的哈希表中的键相同的键;
将与所述确定的键对应的所述检查文件列表的哈希表中的值作为第一排除文件列表。
5.一种代码的合规检查装置,其特征在于,包括:
获取单元,用于获取项目全量代码;
第一构建单元,用于构建对应所述项目全量代码的检查文件列表;
历史基线判断单元,用于判断是否有历史基线;
比对单元,用于所述历史基线判断单元判断有历史基线,比对所述检查文件列表和历史基线文件列表;
第一文件列表形成单元,用于将所述检查文件列表中与所述历史基线的文件内容相同的文件全路径形成第一排除文件列表;
第一更新单元,用于从所述检查文件列表中排除所述第一排除文件列表,并更新所述检查文件列表;
第一检查单元,用于检查当前检查文件列表中是否存在标记文件,所述标记文件为标记历史代码块的开始空文件和结束空文件;
第二文件列表形成单元,用于检查所述当前检查文件列表中存在所述标记文件,将所述当前检查文件列表中的,文件时间在所述开始空文件时间和结束空文件时间之间的文件的全路径形成第二排除文件列表;
所述第一检查单元,包括:
提取单元,用于提取所述当前检查文件列表中文件的最后修改时间;
第三建立单元,用于建立所述当前检查文件列表的哈希表,其中,所述当前检查文件列表的哈希表中的键为换算成毫秒值的文件最后修改时间,所述当前检查文件列表的哈希表中的值为所述当前检查文件列表中文件的文件全路径;
选定单元,用于将所述当前检查文件列表的哈希表中最小键作为项目开始编码时间;
判断单元,用于判断所述标记文件的最后修改时间是否小于所述项目开始编码时间和预设时间的和;
其中,所述第二文件列表形成单元包括:
第二确定单元,用于判断所述标记文件的最后修改时间小于所述项目开始编码时间和预设时间的和,确定所述当前检查文件列表的哈希表中键在开始空文件时间和结束空文件时间之间的键;
文件列表形成子单元,用于将与所述确定的键对应的检查文件列表的哈希表中的值作为第二排除文件列表。
6.根据权利要求5所述的装置,其特征在于,所述第一构建单元包括:
对象生成单元,用于将所述项目全量代码构建成File对象;
生成单元,用于生成对应所述File对象的检查文件列表。
7.根据权利要求5所述的装置,其特征在于,还包括:
第二更新单元,用于从所述当前检查文件列表中删除所述第二排除文件列表,并更新所述检查文件列表;
第二检查单元,用于检查是否存在组织级定义的排除特征文件;
第三文件列表形成单元,用于所述第二检查单元判断存在所述排除特征文件,将所述当前的检查文件列表中文件内容与所述排除特征文件定义的正则表达式匹配的文件全路径形成第三排除文件列表;
合并单元,用于将所述第一排除文件列表和第二排除文件列表并入所述第三排除文件列表。
8.根据权利要求5所述的装置,其特征在于,所述比对单元包括:
第一建立单元,用于建立所述检查文件列表的哈希表,其中,所述检查文件列表的哈希表中的键为所述检查文件列表文件中文件内容的数字签名,所述检查文件列表的哈希表中的值为所述检查文件列表中文件的文件全路径;
第二构建单元,用于构建所述历史基线中历史代码的历史文件列表;
第二建立单元,用于建立所述历史文件列表的哈希表,其中,所述历史文件列表的哈希表中的键为所述历史文件列表中文件内容的数字签名,所述历史文件列表的哈希表中的值为所述历史文件列表中文件的文件全路径;
第一比较单元,用于比较所述检查文件列表的哈希表中的键和历史文件列表的哈希表中的键;
其中,所述第一文件列表形成单元,包括:
第一确定单元,用于在所述检查文件列表的哈希表中的键中,确定与所述历史文件列表的哈希表中的键相同的键;
第一文件列表形成子单元,用于将与所述确定的键对应的所述检查文件列表的哈希表中的值作为第一排除文件列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410638338.XA CN104317950B (zh) | 2014-11-07 | 2014-11-07 | 代码的合规检查方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410638338.XA CN104317950B (zh) | 2014-11-07 | 2014-11-07 | 代码的合规检查方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104317950A CN104317950A (zh) | 2015-01-28 |
CN104317950B true CN104317950B (zh) | 2017-11-03 |
Family
ID=52373182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410638338.XA Active CN104317950B (zh) | 2014-11-07 | 2014-11-07 | 代码的合规检查方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317950B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871313A (zh) * | 2018-12-30 | 2019-06-11 | 贝壳技术有限公司 | 基于特定时间的代码检查方法及装置 |
CN111610999A (zh) * | 2020-05-26 | 2020-09-01 | 北京字节跳动网络技术有限公司 | 一种检查方法、装置、计算机设备及存储介质 |
CN112765608B (zh) * | 2021-01-20 | 2023-05-12 | 每日互动股份有限公司 | 目标apk源代码获取方法、电子设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294749A (zh) * | 2012-02-07 | 2013-09-11 | 株式会社日立解决方案 | 文件列表生成方法和系统以及程序、文件列表生成装置 |
CN103679002A (zh) * | 2013-12-12 | 2014-03-26 | 小米科技有限责任公司 | 监控文件变化的方法、装置及服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292998A (zh) * | 1999-10-18 | 2001-05-02 | 殷作磊 | 天然药物菌虫净及其生产方法 |
US20040215601A1 (en) * | 2003-04-23 | 2004-10-28 | Win-Harn Liu | Method of file management using a computer |
-
2014
- 2014-11-07 CN CN201410638338.XA patent/CN104317950B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294749A (zh) * | 2012-02-07 | 2013-09-11 | 株式会社日立解决方案 | 文件列表生成方法和系统以及程序、文件列表生成装置 |
CN103679002A (zh) * | 2013-12-12 | 2014-03-26 | 小米科技有限责任公司 | 监控文件变化的方法、装置及服务器 |
Non-Patent Citations (1)
Title |
---|
监控文本文件内容变化的文本比较算法;王艳清等;《计算机应用》;20100630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104317950A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101999409B1 (ko) | 예시에 의한 데이터 포매팅 기법 | |
US10970673B2 (en) | Bill of material synchronization | |
CN111399873A (zh) | 一种模型更新方法及装置 | |
CN102236693A (zh) | 确定文档之间的相似度的方法和设备 | |
CN109710299A (zh) | 一种开源类库监控方法、装置、设备及计算机存储介质 | |
CN107346284B (zh) | 一种应用程序的检测方法及检测装置 | |
JP2010231743A (ja) | 文書審査支援装置、文書審査支援方法およびプログラム | |
CN104317950B (zh) | 代码的合规检查方法及装置 | |
CN108205560B (zh) | 一种数据同步方法以及装置 | |
CN107203574A (zh) | 数据管理和数据分析的聚合 | |
JP4878527B2 (ja) | テストデータ作成装置 | |
CN110362968A (zh) | 信息检测方法、装置及服务器 | |
CN106155753A (zh) | 一种应用程序安装方法、装置和终端 | |
CN113239365B (zh) | 一种基于知识图谱的漏洞修复方法 | |
CN104392184A (zh) | 一种多级电子文件凭证生成和校验的方法 | |
JP6481387B2 (ja) | 関連情報提供方法、関連情報提供装置及び関連情報提供プログラム | |
KR101742041B1 (ko) | 개인정보를 보호하는 장치, 개인정보를 보호하는 방법 및 개인정보를 보호하는 프로그램을 저장하는 저장매체 | |
WO2022146910A1 (en) | Editing parameters | |
CN110232080A (zh) | 一种基于区块链的快速检索方法 | |
CN102171696B (zh) | 定制资料的生成方法和装置 | |
CN107562720A (zh) | 一种电力信息网络安全联动防御的告警数据匹配方法 | |
CN106649108A (zh) | 测试数据的生成方法及装置 | |
JP2006244177A (ja) | データベース装置 | |
WO2021077862A1 (zh) | 文件同步方法及装置 | |
JP2013206280A (ja) | 削除ファイル検出プログラム、削除ファイル検出方法、及び、削除ファイル検出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |