CN108170756B - 基于Git仓库的多维度、多视角和可视化注解系统的实现方法 - Google Patents
基于Git仓库的多维度、多视角和可视化注解系统的实现方法 Download PDFInfo
- Publication number
- CN108170756B CN108170756B CN201711403307.6A CN201711403307A CN108170756B CN 108170756 B CN108170756 B CN 108170756B CN 201711403307 A CN201711403307 A CN 201711403307A CN 108170756 B CN108170756 B CN 108170756B
- Authority
- CN
- China
- Prior art keywords
- annotation
- file
- codes
- code
- content
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于Git仓库的多维度、多视角和可视化注解系统的实现方法,首先提供多维度和多视角注解选取方式,接着提供注解内容可视化添加方式,将注解代码与注解内容一致性关系存储到数据库。当用户查看代码文件时,使用文件内容相等性分析与比较算法分析比较该文件在Git仓库中所有带有注解的历史版本,找到该文件的所有历史版本中的注解代码与注解内容之间的一致性关系,最后使用标记语言将上述一致性关系的注解进行可视化。本发明可以对Git仓库中的项目代码添加注解,该注解不但可以包含文字、图片和超链接,还可以跨越多个文件的多处代码进行整合注解,并在历史迭代版本中的同一位置进行可视化显示,具有多维度、多视角和可视化的功能。
Description
技术领域
本发明属于互联网和软件工程领域,具体涉及一种基于Git仓库的多维度、多视角和可视化注解系统的实现方法。
背景技术
现实生活中,许多用户习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别,简单易用。但是这种方式有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复。
为了解决这个问题,很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。为了解决让开发者在不同的系统上进行协同开发的问题,于是,集中化的版本控制系统(Centralized Version Control Systems,简称CVCS)应运而生。随着对系统功能的不断完善和为了解决集中式代码版本控制系统中央服务器的单点故障问题,现如今流行的分布式版本控制系统(Distributed VersionControl System,简称DVCS)面世了,像Git,Mercurial以及Darcs等。
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。每一个Git克隆都是一个完整的文件库,含有全部历史记录和修订追踪能力。其最大特色就是“分支”及“合并”操作快速、简便;支持离线工作,GIT是整个项目范围的原子提交,而且GIT中的每个工作树都包含一个具有完整项目历史的仓库。
Git保留了每次代码演化的全部历史记录,方便我们回退到历史版本查看我们需要的内容。虽然代码中已经有了功能注释和逻辑注释,但是在团队协作开发过程中,负责人在审核提交的代码的时候,可能需要在不改变源代码的情况下对部分代码添加一些注解,同时,开发者也可以对代码添加一些注解,这些注解可以包括大量文字的知识点解析、伪算法讲解和图片,还可以跨越多个文件的多处代码进行整合注解等。一方面可以作为审核人员的审核笔记,便于今后查阅,另一方面也可以作为提交者和审核者之间的一种交流方式,审核者提问,提交者修改或者回答,最后还可以作为其他用户快速熟悉代码功能逻辑的一个重要途径,可以防止开发人员流动过大,交接不方便和减少新加入的开发人员的阅读和学习时间的问题。目前,比较流行的GitHub或者GitLab代码托管平台本身没有提供这种注解内容多维度、多视角和可视化的功能,无法满足我们的需求。
发明内容
本发明的目的是通过设计并实现一种多维度、多视角和可视化的注解系统,可以对Git仓库中的项目代码添加注解,该注解不但可以包含文字、图片和超链接,还可以跨越多个文件的多处代码进行整合注解,并在历史迭代版本中的同一位置进行可视化显示,辅助开发者阅读学习代码。
为实现上述目的,本发明采用的技术方案为基于Git仓库的多维度、多视角和可视化注解系统的实现方法,包含以下步骤:
S1:提供多维度和多视角注解选取方式;
S2:提供多维度和多视角的注解内容可视化添加方式;
S3:将注解代码与注解内容一致性关系存储到数据库;
S4:当用户查看代码文件时,使用文件内容相等性分析与比较算法分析比较该文件在Git仓库中所有带有注解的历史版本,找到该文件的所有历史版本中的注解代码与注解内容之间的一致性关系;
S5:使用标记语言将上述一致性关系的注解进行可视化。
进一步,步骤1中,所述多维度和多视角注解选取方式,包括单行局部内容选取方式、多行内容选取方式和跨文件内容选取方式。
作为优选,所述单行局部内容选取方式是选取一整行代码或者一行中的连续代码作为注解代码标记纬度和视角。
同理,所述多行内容选取方式是对单行局部内容选取标记纬度和视角选取方式的一种扩展,实际上是在单行的基础上扩展到多行,也就是选取多个单行作为一行。
同理,所述跨文件内容选取方式是在单行局部内容选取方式、多行内容选取方式实现方式的基础上,实现跨文件选取,属于在多个文件中选取。
进一步,步骤2中,提供多维度和多视角的注解内容可视化添加方式,具体为:
通过步骤1选取需要被注解的代码后,接下来是对该代码添加注解内容,首先选择添加的注解内容的实现形式,显示标记语言的文本编辑器,当用户输入相关内容后存储到标记语言文件中。
作为优选,所述注解内容的实现形式包括文字、图片、超链接和伪代码四种形式。
进一步,步骤3中,注解代码与注解内容一致性关系存储,具体为:
步骤1和步骤2操作完后,首先是获取步骤1选取的代码的文件名称、文件所在Git仓库版本号、代码行列号;然后获取步骤2内容存储的标记语言文件名称和存储位置;最后把通过步骤1和步骤2获取的内容存储到数据库记录中。
进一步,步骤4中,代码注解内容与代码位置一致性关系分析,具体为:
通过步骤3将注解代码与注解内容一致性关系存储到数据后,当用户通过代码托管平台查看迭代版本代码时,将会在相等代码位置处进行注解可视化,该相等代码指的是代码以及代码上下文都相等;当用户通过代码托管平台查看迭代版本文件中的代码时,先去数据库查找与此文件匹配的记录,通过记录中的文件版本号,到Git仓库中找到所有的历史记录文件;然后使用文件内容相等性分析比较算法,把文件中的每一行转变为char字符,分析该文件与历史版本文件新插入、相等和已删除的内容并作标记,通过对相等的代码做比较,得到该文件所有的注解代码与注解内容的一致性关系,即得到了所有将要被可视化的标记语言文件,最后使用标记语言将其可视化。
与现有技术相比,本发明具有以下有益的技术效果:
1,本发明可以对Git仓库中的项目代码添加注解,该注解不但可以包含文字、图片和超链接,还可以跨越多个文件的多处代码进行整合注解,并在历史迭代版本中的同一位置进行可视化显示,辅助开发者阅读学习代码。
2,本发明的注解内容具有多维度、多视角和可视化的功能,可以显著改善使用者在使用过程中的体验。
附图说明
图1是本发明方法的步骤示意图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明首先提供多维度、多视角的注解选取方式以及注解内容添加方式;紧接着使用数据库存储注解代码与注解内容之间的一致性关系;然后使用文本内容相等性分析比较算法来获取历史迭代版本中注解代码与注解内容之间的一致性关系;最后对多纬度和多视角的注解内容进行界面可视化。具体的步骤如图1所示,如下:
步骤1:提供多维度和多视角注解选取方式
首先提供三种多维度和多视角注解选取方式:单行局部内容选取方式、多行内容选取方式和跨文件内容选取方式。
当用户选择上述内容选取方式之后,将在代码可视化界面右侧可视化红色的选取的代码,并显示确定和取消按钮,用于确定选取内容以及接下来是否添加注解内容。
步骤2:提供多维度和多视角的注解内容可视化添加方式
通过步骤1选取需要被注解的代码后,接下来是对该代码添加注解内容。首先去选择添加的注解内容的实现形式,主要包括文字、图片、超链接和伪代码四种形式。选择完后显示Markdown文本编辑器,左侧是内容输入栏,右侧是内容预览栏,当用户输入相关内容后存储到Markdown文件中。
步骤3:注解代码与注解内容一致性关系存储
步骤1和步骤2操作完后,首先是获取步骤1选取的代码的文件名称、文件所在Git仓库版本号和代码行列号;然后获取步骤2内容存储的Markdown文件名称和存储位置;最后把通过步骤1和步骤2获取的内容存储到数据库记录中。
步骤4:代码注解内容与代码位置一致性关系分析
当用户通过代码托管平台查看迭代版本文件中的代码时,先去数据库查找与此文件匹配的记录,通过记录中的文件版本号,到Git仓库中找到所有的历史记录文件;然后使用本发明的文件内容相等性分析比较算法,把文件中的每一行转变为char字符,分析该文件与历史版本文件新插入、相等和已删除的内容并作标记,通过对相等的代码做比较,得到该文件所有的注解代码与注解内容的一致性关系,也就是得到了所有将要被可视化的Markdown文件,最后使用Markdown将其可视化。
本发明不限于上述实例,一切采用等同替换或等效替换形成的技术方案均属于本发明要求保护的范围。
Claims (7)
1.基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征在于,包含以下步骤:
S1:提供多维度和多视角注解选取方式;
S2:提供多维度和多视角的注解内容可视化添加方式;
S3:将注解代码与注解内容一致性关系存储到数据库,获取步骤1选取的代码的文件名称、文件所在Git仓库版本号、代码行列号;然后获取步骤2内容存储的标记语言文件名称和存储位置;最后把通过步骤1和步骤2获取的内容存储到数据库记录中;
S4:当用户查看代码文件时,使用文件内容相等性分析与比较算法分析比较该文件在Git仓库中所有带有注解的历史版本,找到该文件的所有历史版本中的注解代码与注解内容之间的一致性关系,将注解代码与注解内容一致性关系存储到数据后,当用户通过代码托管平台查看迭代版本代码时,将会在相等代码位置处进行注解可视化,该相等代码指的是代码以及代码上下文都相等;当用户通过代码托管平台查看迭代版本文件中的代码时,先去数据库查找与此文件匹配的记录,通过记录中的文件版本号,到Git仓库中找到所有的历史记录文件;然后使用文件内容相等性分析比较算法,把文件中的每一行转变为char字符,分析该文件与历史版本文件新插入、相等和已删除的内容并作标记,通过对相等的代码做比较,得到该文件所有的注解代码与注解内容的一致性关系,即得到了所有将要被可视化的标记语言文件,最后使用标记语言将其可视化;
S5:使用标记语言将上述一致性关系的注解进行可视化。
2.根据权利要求1所述的基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征是步骤1中,所述多维度和多视角注解选取方式,包括单行局部内容选取方式、多行内容选取方式和跨文件内容选取方式。
3.根据权利要求2所述的基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征是所述单行局部内容选取方式是选取一整行代码或者一行中的连续代码作为注解代码标记纬度和视角。
4.根据权利要求2所述的基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征是所述多行内容选取方式是对单行局部内容选取标记纬度和视角选取方式的一种扩展,实际上是在单行的基础上扩展到多行,也就是选取多个单行作为一行。
5.根据权利要求2所述的基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征是所述跨文件内容选取方式是在单行局部内容选取方式、多行内容选取方式实现方式的基础上,实现跨文件选取,属于在多个文件中选取。
6.根据权利要求1所述的基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征在于步骤2中,提供多维度和多视角的注解内容可视化添加方式,具体为:
通过步骤1选取需要被注解的代码后,接下来是对该代码添加注解内容,首先选择添加的注解内容的实现形式,显示标记语言的文本编辑器,当用户输入相关内容后存储到标记语言文件中。
7.根据权利要求6所述的基于Git仓库的多维度、多视角和可视化注解系统的实现方法,其特征在于所述注解内容的实现形式包括文字、图片、超链接和伪代码四种形式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711403307.6A CN108170756B (zh) | 2017-12-22 | 2017-12-22 | 基于Git仓库的多维度、多视角和可视化注解系统的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711403307.6A CN108170756B (zh) | 2017-12-22 | 2017-12-22 | 基于Git仓库的多维度、多视角和可视化注解系统的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170756A CN108170756A (zh) | 2018-06-15 |
CN108170756B true CN108170756B (zh) | 2021-12-03 |
Family
ID=62523641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711403307.6A Active CN108170756B (zh) | 2017-12-22 | 2017-12-22 | 基于Git仓库的多维度、多视角和可视化注解系统的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170756B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857390B (zh) * | 2019-01-16 | 2022-05-31 | 南京邮电大学 | 一种Git仓库文件注解系统的注解传递方法 |
CN113254395A (zh) * | 2021-05-14 | 2021-08-13 | 杭州圆图网络技术有限公司 | 一种基于散列算法和文件管理系统的文件备注方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311920A (zh) * | 2007-05-25 | 2008-11-26 | 佛山市顺德区顺达电脑厂有限公司 | 电脑档案注解信息的加注及显示方法 |
CN104461671A (zh) * | 2014-12-05 | 2015-03-25 | 闻泰通讯股份有限公司 | 代码修改汇报的定时管理方法及系统 |
CN105956087A (zh) * | 2016-04-29 | 2016-09-21 | 清华大学 | 数据及代码版本管理系统及方法 |
CN106775826A (zh) * | 2016-11-22 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种使用注解方式加载代码文件的方法及系统 |
-
2017
- 2017-12-22 CN CN201711403307.6A patent/CN108170756B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311920A (zh) * | 2007-05-25 | 2008-11-26 | 佛山市顺德区顺达电脑厂有限公司 | 电脑档案注解信息的加注及显示方法 |
CN104461671A (zh) * | 2014-12-05 | 2015-03-25 | 闻泰通讯股份有限公司 | 代码修改汇报的定时管理方法及系统 |
CN105956087A (zh) * | 2016-04-29 | 2016-09-21 | 清华大学 | 数据及代码版本管理系统及方法 |
CN106775826A (zh) * | 2016-11-22 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种使用注解方式加载代码文件的方法及系统 |
Non-Patent Citations (1)
Title |
---|
浅析CSS代码注释技巧;刘伟;《山西青年职业学院学报》;20140930;第27卷(第3期);参见第107-109页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108170756A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kery et al. | Interactions for untangling messy history in a computational notebook | |
CN108228231B (zh) | 一种Git仓库文件注解系统的可视化漂移方法 | |
Wang et al. | Documentation matters: Human-centered ai system to assist data science code documentation in computational notebooks | |
Mukhiya et al. | Hands-On Exploratory Data Analysis with Python: Perform EDA techniques to understand, summarize, and investigate your data | |
Borkin et al. | Evaluation of filesystem provenance visualization tools | |
Perer et al. | Systematic yet flexible discovery: guiding domain experts through exploratory data analysis | |
Schwab et al. | booc. io: An education system with hierarchical concept maps and dynamic non-linear learning plans | |
US10762292B2 (en) | Systems and methods for collaborative editing of interactive walkthroughs of content | |
Li et al. | Autonomous GIS: the next-generation AI-powered GIS | |
Jin et al. | Interactive querying of temporal data using a comic strip metaphor | |
US20120239677A1 (en) | Collaborative knowledge management | |
Brownlow et al. | An ontological approach to creating an andean weaving knowledge base | |
Beeley et al. | Web Application Development with R Using Shiny: Build stunning graphics and interactive data visualizations to deliver cutting-edge analytics | |
US20110131536A1 (en) | Generating and ranking information units including documents associated with document environments | |
CN108170756B (zh) | 基于Git仓库的多维度、多视角和可视化注解系统的实现方法 | |
Wang et al. | Stickyland: Breaking the linear presentation of computational notebooks | |
Shukla et al. | Learning Elastic Stack 7.0: Distributed Search, Analytics, and Visualization Using Elasticsearch, Logstash, Beats, and Kibana | |
Hayes et al. | Developments in the Nunaliit cybercartographic atlas framework | |
Knight et al. | Microsoft Power BI Complete Reference: Bring your data to life with the powerful features of Microsoft Power BI | |
Knight et al. | Microsoft Power BI Quick Start Guide: Bring your data to life through data modeling, visualization, digital storytelling, and more | |
US20170205989A1 (en) | Graphical user interface for non-hierarchichal file system | |
Raviv | Collect, Combine, and Transform Data Using Power Query in Excel and Power BI | |
D Camba et al. | From voice to knowledge: A proposal for a voice annotation system to support collaborative engineering design processes | |
Pope | Big data analytics with SAS: Get actionable insights from your big data using the power of SAS | |
Gillespie et al. | A Guide to R for Social and Behavioral Science Statistics |
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 |