CN107329765A - 程序文件处理方法及装置 - Google Patents
程序文件处理方法及装置 Download PDFInfo
- Publication number
- CN107329765A CN107329765A CN201710538786.6A CN201710538786A CN107329765A CN 107329765 A CN107329765 A CN 107329765A CN 201710538786 A CN201710538786 A CN 201710538786A CN 107329765 A CN107329765 A CN 107329765A
- Authority
- CN
- China
- Prior art keywords
- project file
- file
- initial
- different information
- dictionary
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 15
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000004048 modification Effects 0.000 claims description 27
- 238000012986 modification Methods 0.000 claims description 27
- 230000009467 reduction Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000002224 dissection Methods 0.000 claims description 5
- 230000004807 localization Effects 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 2
- 235000008434 ginseng Nutrition 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的一种程序文件处理方法及装置,设计软件开发技术领域。所述程序文件包括第一源代码及第二源代码,所述方法包括:分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件;根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息;根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑,其中,所述第二工程文件也与所述初始工程文件对应;将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。提高了第一源代码与第二源代码之间的兼容性,实现了自动第一源代码与第二源代码的自动合并。进而减少人工的参与,减少人力成本和时间成本的浪费。
Description
技术领域
本发明涉及软件开发技术领域,具体而言,涉及程序文件处理方法及装置。
背景技术
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。随着网络的普及,用户对软件的要求也显然增多,这就使软件开发的难度越来越大。同一个软件可能需要实现多种功能,而每个功能都需要不同的源代码实现,这就使得开发人员需要分工合作,各自开发软件中的某一部分的源代码,最终将所有的源代码进行合并,以得到最终的软件成品。这样的效率很高,也很实用。当然也存在很多问题,比如,在多名开发人员完成各自负责的源代码之后都需要进行代码合并,在对源代码的工程文件合并时,需要人工监督合并,否则稍有不慎就会出问题,轻则文件索引丢失,重则文件格式造成损坏使Xcode4无法识别而导致开发工作无法正常进行。出现问题后还需要人工逐个核对,耗时耗力。
发明内容
为了解决上述问题,本发明实施例采用的技术方案如下:
本发明实施例提供一种程序文件处理方法。所述程序文件包括第一源代码及第二源代码,所述方法包括:分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件;根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息;根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑,其中,所述第二工程文件也与所述初始工程文件对应;将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。
本发明实施例还提供一种程序文件处理装置。所述程序文件包括第一源代码及第二源代码,所述装置包括:获取模块、生成模块、编辑模块及合并模块。其中,获取模块,用于分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件;生成模块,用于根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息;编辑模块,用于根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑,其中,所述第二工程文件也与所述初始工程文件对应;合并模块,用于将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。
与现有技术相比,本发明提供的一种程序文件处理方法及装置。所述程序文件包括第一源代码及第二源代码,所述方法包括:根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息;根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑;将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。通过将第一工程文件与第二工程文件的差异找出,并根据差异修改第二工程文件,以使第一工程文件及第二工程文件之间兼容性提高,使第一源代码与第二源代码之间可自动合并,减少人工参与,且降低出错率。减轻了人力成本,也减少了开发人员的工作负担。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的用户终端的方框示意图。
图2示出了本发明实施例提供的程序文件处理方法的步骤流程图。
图3为图2中步骤S102的子步骤流程图。
图4示出了本发明实施例提供的程序文件处理装置的功能模块示意图。
图标:100-用户终端;111-存储器;112-处理器;113-通信单元;200-程序文件处理装置;201-获取模块;202-生成模块;203-编辑模块;204-合并模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1示出本发明较佳实施例提供的用户终端100的方框示意图。用户终端100可以是,但不限于是便携计算机、笔记本电脑、台式电脑等等。所述用户终端100包括程序文件处理装置200、存储器111、处理器112、通信单元113。
所述存储器111、处理器112以及通信单元113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述程序文件处理装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在用户终端100的操作系统(operating system,OS)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如所述程序文件处理装置200所包括的软件功能模块及计算机程序等。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序以及语音数据,所述处理器112在接收到执行指令后,执行所述程序。所述通信单元113用于通过所述网络建立所述用户终端100与其他终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图2所示的结构仅为用户终端100的结构示意图,所述用户终端100还可包括比图1中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
第一实施例
请参考图2,图2为本发明较佳实施例提供的一种程序文件处理方法的流程图。所述方法可用于iOS项目开发。所述程序文件处理方法包括以下步骤:
步骤S101,分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件,其中,第一工程文件由所述初始工程文件编辑而成。
在本实施例中,所述程序文件对应的源代码包括第一源代码及第二源代码。工程文件是组织源代码、编译等设置的工程配置文件,例如,iOS项目的组织源代码、编译等设置的工程配置文件。工程文件包括用于描述iOS项目的数组,这个数组中有若干个(根据项目规模不同,此数组中内容的规模也不同)字典,每个字典描述了iOS项目里的一个特性。工程文件是源代码的基础。第一源代码包括对应的第一工程文件,第二源代码包括对应的第二工程文件。第一工程文件及第二工程文件可以是由不同的开发人员基于同一个初始工程文件进行不同的编辑生成。
步骤S102,根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息。
在本实施例中,对第一工程文件与初始工程文件之间进行对比,以获得第一工程文件与初始工程文件之间差异信息,也就获得第一工程文件相对于初始工程文件的修改。可选地,可以将第一工程文件及初始工程文件进行解析处理,获得第一工程文件的属性参数与初始工程文件的属性参数,可选地,可以是分别序列化所述第一工程文件及初始工程文件为对象形式,对象形式的第一工程文件包括多个第一属性参数,对象形式的初始工程文件包括多个初始属性参数。例如,将第一工程文件的Project_1与初始工程文件的Project_Base转换为对象形式分别为Project_Object_1及Project_Object_Base。根据第一工程文件与初始工程文件的属性差异,以获得差异信息。可选地,如图3所示,步骤S102可以包括以下子步骤:
子步骤S1021,获得所述第一工程文件中至少一个字典对应的至少一个第一属性参数及所述初始工程文件中至少一个字典对应的至少一个初始属性参数。
在本实施例中,分别从转化为对象形式的第一工程文件及初始工程文件中获取至少一个字典对应的第一属性参数及初始属性参数。可选地,可以是分别对所述第一工程文件及初始工程文件进行解析处理,以使所述第一工程文件转化为对象形式及所述初始工程文件转化为对象形式;分别从对象形式的所述第一工程文件及对象形式的初始工程文件中分别获取属于预定类别的所述第一工程文件对应的至少一个字典的第一属性参数及所述初始工程文件对应的至少一个字典的初始属性参数。需要说明的是,工程文件中有若干个字典,每个字典用于描述了项目中的一个特性。而这些字典按照类型不同可以划分为多个类型。预定类别为开发人员预先设置的判定为容易在合并时造成冲突的类型。多名开发人员在开发各自负责的源代码部分时,对属于预定类别的字典进行修改很容易导致他们各自负责的源代码部分无法合并。例如,在iOS项目开发过程中,若不同的开发人员对属于PBXFileReference、PBXBuildFile、PBXSourcesBuildPhase、PBXResourcesBuildPhase、PBXGroup五种类型的字典修改的话,就很容易在后期合并过程中引起冲突,因此,在iOS项目中预定类别可以是PBXFileReference、PBXBuildFile、PBXSourcesBuildPhase、PBXResourcesBuildPhase、PBXGroup五种类型。选择最容易产生冲突的字典进行操作,减少不必要的计算量,提高处理速度。例如,从Project_Object_1中读取属于预定类别的字典对应的第一属性参数放入对应类别的数组,如,file_reference_array_1、build_file_array_1、sources_build_phase_array_1、resources_build_phase_array_1、group_array_1;从Project_Object_Base中读取属于预定类别的字典对应的初始属性参数放入对应类别的数组,如,file_reference_array_base、build_file_array_base、sources_build_phase_array_base、resources_build_phase_array_base、group_array_base。
子步骤S1022,根据所述第一属性参数与所述初始属性参数,得到所述第一工程文件与所述初始工程文件之间的差异信息。
在本实施例中,在对工程文件的编辑操作可以包括对字典的删除、增添及对字典内容进行修改。差异信息可以包括新增差异信息、修改差异信息及减少差异信息之间的任一一种或多种的组合。可选地,获得差异信息可以通过依次查询每个所述第一属性参数是否存在对应的所述初始属性参数;当不存在时,则相较于初始工程文件,第一工程文件中的该第一属性参数对应的字典为开发人员新增的。根据所述第一属性参数对应的字典生成新增差异信息;当存在时,再比较所述第一属性参数的参数值与所述初始属性参数的参数值。若所述第一属性参数的参数值与所述初始属性参数的参数值不同时,根据所述第一属性参数对应的字典生成修改差异信息,例如,查询到描述字体颜色的字典对应的第一属性参数在初始工程文件中也存在对应的描述字体颜色的字典对应的初始属性参数时,比较第一属性参数的参数值与该初始属性参数的参数值,若此时,第一属性参数的参数值显示字体颜色为红色,而初始属性参数的参数值显示字体颜色为红色,则表示第一属性参数的参数值与初始属性参数的参数值不同,第一属性参数对应的字典相较于初始属性参数对应的字典有修改,则根据第一属性参数对应的字典生成修改差异信息;依次查询每个所述初始属性参数是否存在对应的所述第一属性参数;当不存在时,根据所述初始属性参数对应的字典生成减少差异信息。根据属性进行比,效率较于传统文本格式的逐条比较更加高效。例如,可以通过分别在file_reference_array_1与file_reference_array_base之间、build_file_array_1与build_file_array_base之间、sources_build_phase_array_1与sources_build_phase_array_base之间、rsources_build_phase_array_1和rsources_build_phase_array_base之间及group_array_1和group_array_base之间进行比较,并将它们之间的新增差异信息、修改差异信息及减少差异信息分别存放在数组:file_reference_array_add、file_reference_array_update、file_reference_array_delete;build_file_array_add、build_file_array_update、build_file_array_delete;sources_build_phase_array_add、sources_build_phase_array_update、sources_build_phase_array_delete;rsources_build_phase_array_add、rsources_build_phase_array_update、rsources_build_phase_array_delete;及group_array_add、group_array_update、group_array_delete。在将第一属性参数与属于同一预定类别的字典对应的初始属性参数进行比较,提高处理效率。
步骤S103,根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑。
在本实施例中,对所述第二工程文件进行解析处理,以使所述第二工程文件转化为对象形式,对象形式的第二工程文件包括多个字典对应的第二属性特征,例如,序列化第二工程文件Project_2为对象形式即Project_Object_2。当所述差异信息包括所述新增差异信息,将所述新增差异信息对应的所述字典增添到所述第二工程文件。例如,将file_reference_array_add、build_file_array_add、sources_build_phase_array_add、rsources_build_phase_array_add及group_array_add内存放的字典添加到对象形式的第二工程文件中。
当所述差异信息包括所述减少差异信息,根据所述减少差异信息对所述第二工程文件中的字典进行删减。可选地,可以通过所述第二工程文件中是否存在所述减少差异信息对应的所述字典,若存在时,将对象形式的所述第二工程文件中与所述减少差异信息对应的字典删除,例如,将第二工程文件Project_Object_2中与数组file_reference_array_delete、build_file_array_delete、sources_build_phase_array_delete、rsources_build_phase_array_delete及group_array_delete中存放的字典对应的字典删除。
可选地,在将对象形式的所述第二工程文件中与所述减少差异信息对应的字典删除之前,所述方法还包括步骤从对象形式的第二工程文件中获取与减少差异信息对应的字典对应的第二属性参数;比较所述第二属性参数的参数值与对应的初始属性参数的参数值;当所述第二属性参数的参数值与对应的初始属性参数的参数值不同时,根据第二属性参数对应的字典生成删除日志,以使在所述程序文件合并报错时根据所述删除日志定位记录位置,需要说明的是,合并报错可以是第一源代码与第二源代码在合并过程中合并内容产出冲突而自动进行的报错。
当所述差异信息包括所述修改差异信息,根据所述修改差异信息对应的所述字典变更所述第二工程文件。可选地,查询所述第二工程文件中是否存在所述修改差异信息对应的所述字典;若存在时,将对象形式的所述第二工程文件中对应的字典替换为所述修改差异信息对应的字典,例如,将数组file_reference_array_update、build_file_array_update、sources_build_phase_array_update、rsources_build_phase_array_update及group_array_update中存放的字典替换第二工程文件Project_Object_2中对应的字典。若不存在时,在对象形式的所述第二工程文件中添加所述修改差异信息对应的字典。
可选地,在将对象形式的所述第二工程文件中对应的字典替换为所述修改差异信息对应的字典之前,所述方法还包括步骤从对象形式的第二工程文件中获取被替换的字典对应的第二属性参数;比较所述第二属性参数的参数值与对应的初始属性参数的参数值;当所述第二属性参数与对应的初始属性参数不同时,根据第二属性参数对应的字典生成变更日志,以使在所述程序文件合并报错时根据所述变更日志定位错误位置。
步骤S104,将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。
在本实施例中,完成对第二源代码的对象形式的第二工程文件的编辑后,将对象形式的第二工程文件转换为文件形式,利用编写的脚本文件将第一源代码与第二源代码合并以得到处理后的程序文件。合并的过程中,会在程序文件冲突内容的地方打上冲突标识符。合并结束后,根据所述冲突标记符结合处理过程中生成的删除日志及变更日志针对性的进行检修,极大的减轻了开发人员的工作负担,效率高。
第二实施例
请参照图4,图4为本发明实施例提供的程序文件处理装置200的功能模块示意图。所述程序文件处理装置200包括:获取模块201、生成模块202、编辑模块203及合并模块204。
获取模块201,用于分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件,其中,第一工程文件由所述初始工程文件编辑而成。
在本发明实施例中,所述步骤S101可以由获取模块201执行。所述程序文件对应的源代码包括第一源代码及第二源代码。工程文件是组织源代码、编译等设置的工程配置文件,例如,iOS项目的组织源代码、编译等设置的工程配置文件。工程文件包括用于描述iOS项目的数组,这个数组中有若干个(根据项目规模不同,此数组中内容的规模也不同)字典,每个字典描述了iOS项目里的一个特性。工程文件是源代码的基础。第一源代码包括对应的第一工程文件,第二源代码包括对应的第二工程文件。第一工程文件及第二工程文件可以是由不同的开发人员基于同一个初始工程文件进行不同的编辑生成。
生成模块202,用于根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息。可选地,通过获得所述第一工程文件中至少一个字典对应的至少一个第一属性参数及所述初始工程文件中至少一个字典对应的至少一个初始属性参数。可以是通过分别从对象形式的所述第一工程文件及对象形式的初始工程文件中分别获取属于预定类别的所述第一工程文件对应的至少一个字典的第一属性参数及所述初始工程文件对应的至少一个字典的初始属性参数。根据所述第一属性参数与所述初始属性参数,得到所述第一工程文件与所述初始工程文件之间的差异信息。
在本发明实施例中,所述步骤S102、子步骤S1021及子步骤S1022均可以由生成模块202执行。
编辑模块203,用于根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑,其中,所述第二工程文件由所述初始工程文件编辑而成。
在本发明实施例中,所述步骤S103可以由编辑模块203执行。可选地,编辑模块203执行步骤S103的方式为:对所述第二工程文件进行解析处理,以使所述第二工程文件转化为对象形式,对象形式的第二工程文件包括多个字典对应的第二属性特征;当所述差异信息包括所述新增差异信息,将所述新增差异信息对应的所述字典增添到所述第二工程文件。当所述差异信息包括所述减少差异信息,根据所述减少差异信息对所述第二工程文件中的字典进行删减。可选地,可以通过所述第二工程文件中是否存在所述减少差异信息对应的所述字典,若存在时,从对象形式的第二工程文件中获取与减少差异信息对应的字典对应的第二属性参数;比较所述第二属性参数的参数值与对应的初始属性参数的参数值;当所述第二属性参数的参数值与对应的初始属性参数的参数值不同时,根据第二属性参数对应的字典生成删除日志,以使在所述程序文件合并报错时根据所述删除日志定位记录位置。再将对象形式的所述第二工程文件中与所述减少差异信息对应的字典删除;当所述差异信息包括所述修改差异信息,根据所述修改差异信息对应的所述字典变更所述第二工程文件。可选地,查询所述第二工程文件中是否存在所述修改差异信息对应的所述字典。若存在时,从对象形式的第二工程文件中获取被替换的字典对应的第二属性参数。比较所述第二属性参数的参数值与对应的初始属性参数的参数值。当所述第二属性参数与对应的初始属性参数不同时,根据第二属性参数对应的字典生成变更日志,以使在所述程序文件合并报错时根据所述变更日志定位错误位置。再将对象形式的所述第二工程文件中对应的字典替换为所述修改差异信息对应的字典。不存在时,在对象形式的所述第二工程文件中添加所述修改差异信息对应的字典。
合并模块204,用于将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。
在本发明实施例中,所述步骤S104可以由合并模块204执行。
综上所述,本发明提供的一种程序文件处理方法及装置。所述方法包括:根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息。根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑。将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。借助初始工程文件找出将第一工程文件与第二工程文件之间可能存在冲突的差异,并根据差异修改第二工程文件,以使第一工程文件及第二工程文件之间兼容性提高,使第一源代码与第二源代码之间可实现自动合并。进而减少人工参与,且降低出错率。减轻了人力成本,也减少了开发人员的工作负担。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种程序文件处理方法,其特征在于,所述程序文件包括第一源代码及第二源代码,所述方法包括:
分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件;
根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息;
根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑,其中,所述第二工程文件也与所述初始工程文件对应;
将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息的步骤包括:
获得所述第一工程文件中至少一个字典对应的至少一个第一属性参数及所述初始工程文件中至少一个字典对应的至少一个初始属性参数;
根据所述第一属性参数与所述初始属性参数,得到所述第一工程文件与所述初始工程文件之间的差异信息。
3.如权利要求2所述的方法,其特征在于,根据所述第一属性参数与所述初始属性参数,得到所述第一工程文件与所述初始工程文件之间的差异信息的步骤包括:
依次查询每个所述第一属性参数是否存在对应的所述初始属性参数;
当不存在时,根据所述第一属性参数对应的字典生成新增差异信息;
当存在时,比较所述第一属性参数的参数值与所述初始属性参数的参数值;
若所述第一属性参数的参数值与所述初始属性参数的参数值不同时,根据所述第一属性参数对应的字典生成修改差异信息;
依次查询每个所述初始属性参数是否存在对应的所述第一属性参数;
当不存在时,根据所述初始属性参数对应的字典生成减少差异信息。
4.如权利要求3所述的方法,其特征在于,根据所述差异信息对第二源代码对应的第二工程文件进行编辑的步骤包括:
当所述差异信息包括所述新增差异信息,将所述新增差异信息对应的所述字典增添到所述第二工程文件;
当所述差异信息包括所述减少差异信息,根据所述减少差异信息对所述第二工程文件中的字典进行删减;
当所述差异信息包括所述修改差异信息,根据所述修改差异信息对应的所述字典变更所述第二工程文件。
5.如权利要求4所述的方法,其特征在于,根据所述修改差异信息对应的所述字典变更所述第二工程文件的步骤包括:
查询所述第二工程文件中是否存在所述修改差异信息对应的所述字典;
当存在时,将所述第二工程文件中对应的字典替换为所述修改差异信息对应的字典;
当不存在时,在所述第二工程文件中添加所述修改差异信息对应的字典。
6.如权利要求5所述的方法,其特征在于,当所述第二工程文件中存在所述修改差异信息对应的字典时,在将所述修改差异信息对应的所述字典替换所述第二工程文件中对应的字典之前还包括步骤:
根据所述第二工程文件,获取所述第二工程文件中被替换的字典对应的第二属性参数;
比较所述第二属性参数的参数值与对应的初始属性参数的参数值;
当所述第二属性参数与对应的初始属性参数不同时,根据第二属性参数对应的字典生成变更日志,以使在所述程序文件合并报错时根据所述变更日志定位错误位置。
7.如权利要求4所述的方法,其特征在于,根据所述减少差异信息对所述第二工程文件中的字典进行删减的步骤包括:
查询所述第二工程文件中是否存在所述减少差异信息对应的所述字典;
当存在时,将所述第二工程文件中与所述减少差异信息对应的字典删除。
8.如权利要求7所述的方法,其特征在于,在将所述第二工程文件中与所述减少差异信息对应的字典删除之前,还包括步骤:
根据所述第二工程文件获取与减少差异信息对应的字典对应的第二属性参数;
比较所述第二属性参数的参数值与对应的初始属性参数的参数值;
当所述第二属性参数的参数值与对应的初始属性参数的参数值不同时,根据第二属性参数对应的字典生成删除日志,以使在所述程序文件合并报错时根据所述删除日志定位记录位置。
9.如权利要求2所述的方法,其特征在于,所述获得所述第一工程文件中至少一个字典对应的至少一个第一属性参数及所述初始工程文件中至少一个字典对应的至少一个初始属性参数的步骤包括:
分别对所述第一工程文件及初始工程文件进行解析处理,以使所述第一工程文件转化为对象形式及所述初始工程文件转化为对象形式;
分别从对象形式的所述第一工程文件及对象形式的初始工程文件中分别获取属于预定类别的所述第一工程文件对应的至少一个字典的第一属性参数及所述初始工程文件对应的至少一个字典的初始属性参数。
10.一种程序文件处理装置,其特征在于,所述程序文件包括第一源代码及第二源代码,所述装置包括:
获取模块,用于分别获取所述第一源代码的第一工程文件及所述第一工程文件对应的初始工程文件;
生成模块,用于根据所述第一工程文件及初始工程文件,得到所述第一工程文件与所述初始工程文件之间的差异信息;
编辑模块,用于根据所述差异信息对所述第二源代码对应的第二工程文件进行编辑,其中,所述第二工程文件也与所述初始工程文件对应;
合并模块,用于将所述第一源代码与编辑后的第二源代码合并,得到处理后的程序文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710538786.6A CN107329765B (zh) | 2017-07-04 | 2017-07-04 | 程序文件处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710538786.6A CN107329765B (zh) | 2017-07-04 | 2017-07-04 | 程序文件处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329765A true CN107329765A (zh) | 2017-11-07 |
CN107329765B CN107329765B (zh) | 2020-09-04 |
Family
ID=60196261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710538786.6A Active CN107329765B (zh) | 2017-07-04 | 2017-07-04 | 程序文件处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329765B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408102A (zh) * | 2018-09-04 | 2019-03-01 | 珠海格力电器股份有限公司 | 一种版本比对方法和装置、家电设备、网络设备 |
CN109710301A (zh) * | 2018-11-30 | 2019-05-03 | 福建天泉教育科技有限公司 | 一种自动比较接口文档差异的方法及终端 |
CN112363719A (zh) * | 2020-11-23 | 2021-02-12 | 百度在线网络技术(北京)有限公司 | 小程序模板的合并方法、装置、设备及存储介质 |
CN113110868A (zh) * | 2021-04-07 | 2021-07-13 | 网易(杭州)网络有限公司 | 文件合并方法、装置、计算机设备及存储介质 |
CN113703778A (zh) * | 2021-09-06 | 2021-11-26 | 工银科技有限公司 | 基于移动通信设备的工程文件冲突处理方法及装置 |
CN113805883A (zh) * | 2020-06-16 | 2021-12-17 | 门德斯科技有限公司 | 创建应用程序的方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098408A1 (en) * | 2002-11-14 | 2004-05-20 | Thomas Gensel | Parameterizing system and method |
CN1622094A (zh) * | 2004-12-24 | 2005-06-01 | 北京中星微电子有限公司 | 一种合并文件的方法 |
CN1783093A (zh) * | 2004-12-01 | 2006-06-07 | 国际商业机器公司 | 合并电子文档的多个不同版本的方法和装置 |
CN104461578A (zh) * | 2014-12-26 | 2015-03-25 | 广州唯品会信息科技有限公司 | 代码自动合并方法和系统 |
CN106406918A (zh) * | 2016-11-25 | 2017-02-15 | 华胜信泰信息产业发展有限公司 | 源代码自动合并方法和源代码自动合并装置 |
-
2017
- 2017-07-04 CN CN201710538786.6A patent/CN107329765B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098408A1 (en) * | 2002-11-14 | 2004-05-20 | Thomas Gensel | Parameterizing system and method |
CN1783093A (zh) * | 2004-12-01 | 2006-06-07 | 国际商业机器公司 | 合并电子文档的多个不同版本的方法和装置 |
CN1622094A (zh) * | 2004-12-24 | 2005-06-01 | 北京中星微电子有限公司 | 一种合并文件的方法 |
CN104461578A (zh) * | 2014-12-26 | 2015-03-25 | 广州唯品会信息科技有限公司 | 代码自动合并方法和系统 |
CN106406918A (zh) * | 2016-11-25 | 2017-02-15 | 华胜信泰信息产业发展有限公司 | 源代码自动合并方法和源代码自动合并装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408102A (zh) * | 2018-09-04 | 2019-03-01 | 珠海格力电器股份有限公司 | 一种版本比对方法和装置、家电设备、网络设备 |
CN109710301A (zh) * | 2018-11-30 | 2019-05-03 | 福建天泉教育科技有限公司 | 一种自动比较接口文档差异的方法及终端 |
CN113805883A (zh) * | 2020-06-16 | 2021-12-17 | 门德斯科技有限公司 | 创建应用程序的方法和系统 |
CN112363719A (zh) * | 2020-11-23 | 2021-02-12 | 百度在线网络技术(北京)有限公司 | 小程序模板的合并方法、装置、设备及存储介质 |
CN113110868A (zh) * | 2021-04-07 | 2021-07-13 | 网易(杭州)网络有限公司 | 文件合并方法、装置、计算机设备及存储介质 |
CN113110868B (zh) * | 2021-04-07 | 2023-08-08 | 网易(杭州)网络有限公司 | 文件合并方法、装置、计算机设备及存储介质 |
CN113703778A (zh) * | 2021-09-06 | 2021-11-26 | 工银科技有限公司 | 基于移动通信设备的工程文件冲突处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107329765B (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107329765A (zh) | 程序文件处理方法及装置 | |
CN107229750B (zh) | 表格数据处理方法、装置、存储介质和处理器 | |
CN110334009A (zh) | 测试用例自动生成方法、装置、终端及存储介质 | |
CN107145485A (zh) | 用于压缩主题模型的方法和装置 | |
CN106844772A (zh) | 应用数据库的更新方法及装置 | |
CN113722438A (zh) | 基于句向量模型的句向量生成方法、装置及计算机设备 | |
CN112906361A (zh) | 文本数据的标注方法和装置、电子设备和存储介质 | |
CN112733551A (zh) | 文本分析方法、装置、电子设备及可读存储介质 | |
CN113268665A (zh) | 基于随机森林的信息推荐方法、装置、设备及存储介质 | |
CN110334720A (zh) | 业务数据的特征提取方法、装置、服务器和存储介质 | |
CN106528566A (zh) | 日志文件的输出方法、服务器及客户端 | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
CN110135814A (zh) | Bim与工程数据的关联方法、系统及终端设备 | |
CN113658720A (zh) | 匹配诊断名称和icd编码的方法、装置、电子设备和存储介质 | |
CN113435308A (zh) | 文本多标签分类方法、装置、设备及存储介质 | |
CN110704635B (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
CN107705849A (zh) | 远程会诊意见整合方法和装置 | |
CN111723164B (zh) | 地址信息的处理方法和装置 | |
CN116681045A (zh) | 报表生成方法、装置、计算机设备及存储介质 | |
CN102866985A (zh) | 用于联机分析处理系统的数据格式化装置和方法 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN109799917A (zh) | 文字输入方法和装置 | |
CN109657073A (zh) | 用于生成信息的方法和装置 | |
CN108647310A (zh) | 识别模型建立方法及装置、文字识别方法及装置 | |
CN114185522A (zh) | 页面主题定制方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231007 Address after: Station 06, 2nd Floor, Wuling Logistics Entrepreneurship Incubation Base, Building 2, Railway Logistics Zone, Zhonghe Street, Xiushan Tujia and Miao Autonomous County, Chongqing City, 409900 Patentee after: Chongqing Qulian Information Technology Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |