区分模式差异与非模式差异的制作方法
- 国知局
- 2024-07-31 23:24:12
背景技术:
1、在计算中,差别化工具是一种数据比较实用程序,其计算和显示文档(例如,文件)的内容之间的差异(即,更改)。通常,差别化工具用于显示同一文档的两个(或更多个)版本之间的差异。差别化工具的常见用途是突出显示对源代码文件所做的更改。
2、例如,在使用诸如git、subversion、mercurial等的版本控制系统时,开发人员通常会从代码存储库的主要(或主)分支创建新分支。该新分支是主要分支的一个或多个文件的副本或快照。然后,开发人员可以自由地为该新分支做出贡献(例如,通过添加、删除和/或编辑文件),并最终请求经由更改提议(例如,在github中,经由拉取请求)将那些贡献合并到主要分支中。此类更改提议通常包括两个分支中的文件的内容之间的差异或差别的集合,作为要合并到主要分支中的提议的更改的集合。通常,更改提议中的差异的集合由对主要分支具有写入权限的审查者进行审查,并且如果获得批准,则合并到主要分支中。
技术实现思路
1、当在文档之间存在许多差异时,可能难以在可以作为整体进行审查的重复差异与更独特的差异之间进行区分。例如,当开发人员对分支做出贡献时,那些贡献通常包含对源代码的功能更改(例如,改变函数的逻辑、更改数学运算、更改条件)和对源代码的重构更改(例如,重命名变量、重命名函数)的混合。重构更改可以生成许多差异,即使所有那些差异都是重复的并且通常不会改变程序的功能。结果,在更改提议的审查期间需要仔细审查的功能更改可能在重构更改的森林中丢失。这可能导致次要的负面影响,诸如审查者忽略了重大的结构更改,从而导致编码错误被合并。此外,在一些情况下,审查者可能避免对具有许多更改的更改提议的审查,而倾向于处理具有较少更改的更改提议。这反过来又可能导致合并冲突,其中存储库的主要分支在合并更改提议之前已经被更改。
2、本文描述的至少一些实施例基于标识文档的不同版本的内容之间的重复差异(例如,源代码中的重构更改)来标识那些差异中的模式。由于它们是使用模式标识的,所以这些重复差异在本文中称为“模式差异”。然后,当呈现文档的这些版本之间的差异的集合时,本文描述的实施例隐藏模式差异或者对模式差异给予与它们对非重复“非模式”差异所做的不同视觉处理。结果,非重复更改(例如,源代码中的功能更改)突出并且可以被容易地审查。因此,本文的实施例使得审查者能够快速地标识非模式差异,这些非模式差异对于代码审查而言通常比模式差异更重要。
3、因此,本文的实施例对数据可视化的技术领域提供了改进,以及提供比传统文档差异可视化技术更干净、更清楚和/或更集中的信息的视觉呈现的技术效果。例如,传统文档差异可视化技术仅仅利用相同类型的视觉处理(例如,突出显示)显示所有差异,不论它们是重复的还是非重复的。值得注意的是,当应用于代码时,这种改进可以导致更高质量的代码审查(例如,通过使代码审查者更容易发现重大的结构更改)并且可以鼓励更快地审查更改提议——这可以避免合并冲突,因为越早合并的更改与后续更改发生冲突的几率就越小。
4、在一些方面中,本文描述的技术涉及一种在包括处理器的计算机系统上实现的方法,用于区分文档的不同版本之间的模式差异,该方法包括:标识文档的第一版本和文档的第二版本;标识差异的集合,该差异的集合包括文档的第一版本与文档的第二版本之间的多个差异;标识解释从文档的第一版本中的第一字符串到文档的第二版本中的第二字符串的转换的模式;标识差异的子集,该差异的子集包括来自差异的集合中的、与该模式匹配的多个差异;以及在呈现视觉地突出显示文档的第一版本与文档的第二版本之间的差异的用户界面的同时,至少基于差异的集合中的第一差异被包括在差异的子集中,对第一差异应用第一视觉处理;以及至少基于差异的集合中的第二差异从差异的子集中被排除,对第二差异应用第二视觉处理,第二视觉处理不同于第一视觉处理。
5、在一些方面中,本文描述的技术涉及一种用于区分文档的不同版本之间的模式差异的计算机系统,包括:处理器;以及计算机存储介质,其存储能由处理器执行以使得计算机系统至少进行以下操作的计算机可执行指令:标识文档的第一版本和文档的第二版本;标识差异的集合,该差异的集合包括文档的第一版本与文档的第二版本之间的多个差异;标识解释从文档的第一版本中的第一字符串到文档的第二版本中的第二字符串的转换的模式;标识差异的子集,该差异的子集包括来自差异的集合中的、与该模式匹配的多个差异;以及在呈现视觉地突出显示文档的第一版本与文档的第二版本之间的差异的用户界面的同时,至少基于差异的集合中的第一差异被包括在差异的子集中,对第一差异应用第一视觉处理;以及至少基于差异的集合中的第二差异从差异的子集中被排除,对第二差异应用第二视觉处理,第二视觉处理不同于第一视觉处理。
6、在一些方面中,本文描述的技术涉及一种计算机程序产品,包括计算机存储介质,该计算机存储介质存储由处理器可执行以使得计算机系统区分文档的不同版本之间的模式差异的计算机可执行指令,该计算机可执行指令包括由处理器可执行以使得计算机系统至少进行以下操作的指令:标识文档的第一版本和文档的第二版本;标识差异的集合,该差异的集合包括文档的第一版本与文档的第二版本之间的多个差异;标识解释从文档的第一版本中的第一字符串到文档的第二版本中的第二字符串的转换的模式;标识差异的子集,该差异的子集包括来自差异的集合中的、与该模式匹配的多个差异;以及在呈现视觉地突出显示文档的第一版本与文档的第二版本之间的差异的用户界面的同时,至少基于差异的集合中的第一差异被包括在差异的子集中,对第一差异应用第一视觉处理;以及至少基于差异的集合中的第二差异从差异的子集中被排除,对第二差异应用第二视觉处理,第二视觉处理不同于第一视觉处理。
7、提供本技术实现要素:从而以简化形式介绍下面在具体实施方式中进一步描述的一系列构思。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,其也不旨在用作确定所要求保护的主题的范围的辅助手段。
技术特征:1.一种在包括处理器的计算机系统上实现的方法,用于将文档的不同版本之间的模式差异与非模式差异区分开,所述方法包括:
2.根据权利要求1所述的方法,其中所述模式包括替代或搜索模式中的至少一个。
3.根据权利要求1所述的方法,其中基于以下至少一项来标识所述模式:
4.根据权利要求3所述的方法,其中基于所述日志来标识所述模式,并且其中所述日志被包括在更改提议中。
5.根据权利要求3所述的方法,其中基于所述日志来标识所述模式,并且其中所述日志由集成开发环境的语言服务基于一个或多个代码重构更改来生成。
6.根据权利要求1所述的方法,其中与所述第二视觉处理相比,所述第一视觉处理被视觉地淡化。
7.根据权利要求1所述的方法,其中:
8.根据权利要求1所述的方法,还包括:
9.根据权利要求1所述的方法,还包括呈现可选择用户界面控件,当所述可选择用户界面控件被选择时,发起对所述差异的子集中的所有差异的批准。
10.根据权利要求1所述的方法,还包括将评论与所述差异的子集相关联。
11.根据权利要求1所述的方法,还包括将所述模式存储到日志。
12.根据权利要求1所述的方法,还包括呈现用户界面元素,所述用户界面元素包括一个或多个规则,每个规则与对应模式相关联,每个规则的存在使所述用户界面对与所述对应模式匹配的一个或多个差异应用所述第一视觉处理,并且其中所述用户界面元素使得能够接收用户输入以移除每个规则。
13.根据权利要求1所述的方法,还包括:
14.一种用于将文档的不同版本之间的模式差异与非模式差异区分开的计算机系统,包括:
15.根据权利要求14所述的计算机系统,其中所述模式包括替代或搜索模式中的至少一个。
技术总结将模式差异与非模式差异区分开。标识差异的集合。该集合包括文档的第一版本与第二版本之间的多个差异。标识模式。该模式解释从文档的第一版本中的第一字符串到文档的第二版本中的第二字符串的转换。标识差异的子集。该子集包括来自该集合当中的与模式匹配的多个差异。在呈现视觉地突出显示文档的第一版本与第二版本之间的差异的用户界面的同时,基于第一差异被包括在子集中,对第一差异应用第一视觉处理。基于第二差异从子集中被排除,还对第二差异应用第二视觉处理。第二视觉处理不同于第一视觉处理。技术研发人员:D·E·皮尤,M·A·威尔逊-托马斯,V·M·李受保护的技术使用者:微软技术许可有限责任公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/197359.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。