[发明专利]源文件的比较装置及方法有效
申请号: | 200810085720.7 | 申请日: | 2008-03-13 |
公开(公告)号: | CN101533346A | 公开(公告)日: | 2009-09-16 |
发明(设计)人: | 赖周建 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京康信知识产权代理有限责任公司 | 代理人: | 尚志峰;吴孟秋 |
地址: | 518057广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源文件 比较 装置 方法 | ||
技术领域
本发明涉及源文件编辑和比较技术领域,更具体的说,涉及在 修改某软件的某版本源文件后,将修改加入到该软件的其他版本中 的技术。
背景技术
源代码是计算机软件学中的术语,它是用计算机语言写成的字 符串,是软件的实现方式;源文件是保存源代码的文件。为了便于 阅读,源代码是一行行被组织起来,然后某些行组成了相对独立的 一个功能块,于是就有了结构、函数、过程、类等由数行代码组成 的有机体,本文把这个有机体简单叫做组织,各个组织的共同特点 之一是都有一个名称;另外还有一些组织外的多行的宏定义和注释, 它们没有一个名称,但是它们也是由多行代码组成的一个有机体, 本文把这些也归入组织,它们的名字就用第一行替代。组织外的包 含语句、全局变量定义、单行宏和单行注释等就简单称为非组织。 当今的软件功能强大,系统复杂,经常需要很多程序员在很长的时 间段里对源代码进行反复修改。通常某个程序员在修改软件时,需 要取得该软件的某个版本的源代码,修改完成后,需要将修改保存 到该版本和其他需要的版本中去,此时就要用到文件的比较合并。
目前已经有了很多文件的比较合并工具,他们大都是以行为单 位进行比较。其实现方式是先将待比较的两个文件打开,将其内容 读入比较窗口中,从第一行开始,逐行比较,将有差异的、对方没 有的行标记出来。这种按行比较的方法存在以下弊端:
1.当两个文件相差比较大时,标记会非常多,其中很多标记 是和这次合并没有关系的。例如,在1.0的版本上增加、删除、修 改了某些函数的文件A1.1,需要将这些改动也合入到2.0版本的源 文件A2.0中,A1.1在修改前和B2.0文件已经差别很大了,而这次 合入又只能合本次改动的代码,逐行比较的繁多标记对合代码来说 是一种严重的干扰;
2.通常对源文件的改动都是以组织为单位的,当需要比较两 个版本差异的时候,由于采用的是逐行比较,改动的组织不能一目 了然的出现在读者眼前;以及
3.当文件比较大时,完全读入两个文件到内存将占有过多的 系统资源。在大的文件中找该合的改动也会是相当的费神,加重了 合并代码的负担。
因此,需要一种源文件的比较的解决方案,能够解决上述相关 技术中的问题。
发明内容
本发明的目的在于减轻程序员在合代码时的负担,减少比较大 文件时占用的内存并提供一种比较各版本的源文件差异的工具。
根据本发明的一个方面,提供了一种源文件的比较装置,包括: 源文件组织提取模块,用于分别从待比较的第一源文件和第二源文 件中提取组织,并将提取的组织的名称及其描述信息分别存储到第 一缓冲区和第二缓冲区中,以及将第一源文件和第二源文件中的非 组织分别存储到第一缓冲区和第二缓冲区中;组织比较模块,用于 根据存储在第一缓冲区和第二缓冲区中的组织的名称及其描述信息 将待比较的组织分别读取到第一缓冲区和第二缓冲区中,并以组织 为单位对待比较的组织进行比较,以及将比较结果分别存储到第一 缓冲区和第二缓冲区中;以及行比较模块,用于以行为单位对第一 缓冲区和第二缓冲区中的非组织进行比较,以及在组织比较结果表 明被比较的组织不同时,对被比较的组织进行展开并以行为单位对 展开的组织的内容进行比较,并将比较结果存储到第一缓冲区和第 二缓冲区中。
上述装置还包括:显示模块,用于显示组织比较结果和行比较 结果;缓冲区管理模块,用于管理第一缓冲区和第二缓冲区,并为 源文件组织提取模块、组织比较模块、行比较模块、以及显示模块 提供接口;文件保存模块,用于保存修改的源文件;以及修改及合并 模块,用于对比较后的第一源文件和第二源文件进行修改或合并。
源文件组织提取模块包括:提取单元,用于分别从待比较的第 一源文件和第二源文件中提取组织;第一存储单元,用于将提取单 元提取的组织存储到第一缓冲区和第二缓冲区中,以及将第一源文 件和第二源文件中的非组织分别存储到第一缓冲区和第二缓冲区 中。
组织比较模块包括:读取单元,用于根据存储在第一缓冲区和 第二缓冲区中的组织的名称及其描述信息将待比较的组织分别读取 到第一缓冲区和第二缓冲区中;比较单元,用于以组织为单位对待 比较的组织进行比较;以及第二存储单元,用于将比较结果分别存 储到第一缓冲区和第二缓冲区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810085720.7/2.html,转载请声明来源钻瓜专利网。