CN112596705B - 项目版本控制方法、装置、电子设备及存储介质 - Google Patents

项目版本控制方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112596705B
CN112596705B CN202011471408.9A CN202011471408A CN112596705B CN 112596705 B CN112596705 B CN 112596705B CN 202011471408 A CN202011471408 A CN 202011471408A CN 112596705 B CN112596705 B CN 112596705B
Authority
CN
China
Prior art keywords
version
project
space table
version number
file
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
Application number
CN202011471408.9A
Other languages
English (en)
Other versions
CN112596705A (zh
Inventor
邬亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Douyin Vision Co Ltd
Original Assignee
Douyin Vision Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Douyin Vision Co Ltd filed Critical Douyin Vision Co Ltd
Priority to CN202011471408.9A priority Critical patent/CN112596705B/zh
Publication of CN112596705A publication Critical patent/CN112596705A/zh
Application granted granted Critical
Publication of CN112596705B publication Critical patent/CN112596705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种项目版本控制方法、装置、电子设备及存储介质,该项目版本控制方法包括:在与网页版集成开发环境连接的目标数据库中建立工作空间表和版本空间表;工作空间表用于记录开发中项目的项目标识和项目文件;版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;项目标识用于区分不同的项目;项目版本号用于指示在对应项目下的最新项目文件;将网页版集成开发环境的文件访问路径从本地访问路径修改为访问工作空间表的访问路径;基于工作空间表、版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问。如此,可以直接在网页版集成开发环境中实现对项目的版本控制,方便用户操作和使用。

Description

项目版本控制方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种项目版本控制方法、装置、电子设备和存储介质。
背景技术
在计算机技术领域,用户(开发人员)通常在主流的IDE(Integrated DevelopmentEnvironment,集成开发环境)中进行软件开发、代码调试等,如:Visual Studio、Eclipse、Neat Beans、IntelliJ IDEA等IDE。其中,网页版集成开发环境WebIDE是一种提供程序的集成开发环境的网络应用程序。通过WebIDE,用户可以在任何安装了浏览器的设备上进行软件开发。
在软件开发过程中,用户经常会通过版本控制来追踪代码文件的改动。通过追踪代码文件的修改,更容易定位到软件的错误(Bug)。目前,应用最广泛的分布式版本控制软件为git版本控制***,其工作流程为:用户从git代码仓库拉取代码到本地,在本地IDE进行开发,然后提交修改后的代码,并推送到git代码仓库,从而同步给其他用户。
然而,网页版集成开发环境WebIDE一般会根据使用场景而进行定制化,比如定制化为小程序IDE,定制化的WebIDE的底层通常会连接数据库。也就是说,定制化的WebIDE一般读写数据库上的代码文件,而不是本地的代码文件,进而导致在定制化的WebIDE上不能直接使用各种版本控制软件。
发明内容
本公开实施例至少提供一种项目版本控制方法、装置、电子设备及计算机可读存储介质。
第一方面,本公开实施例提供了一种项目版本控制方法,包括:
在与网页版集成开发环境WebIDE连接的目标数据库中建立工作空间表和版本空间表;所述工作空间表用于记录开发中项目的项目标识和项目文件;所述版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;所述项目标识用于区分不同的项目;所述项目版本号用于指示在对应项目下的最新项目文件;
将所述网页版集成开发环境的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径;
基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问。
本公开实施例中,由于在与WebIDE连接的数据库中建立了工作空间表和版本空间表,并将WebIDE的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径,因此无需使用其他版本控制软件,即可在WebIDE中实现对项目的版本控制,进而方便用户使用。
根据第一方面,在一种可能的实施方式中,所述基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问,包括:
在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录;和/或,
在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容。
本公开实施例中,可以在检测到用户的操作时直接进行版本的发布和访问,进一步方便用户使用。
根据第一方面,在一种可能的实施方式中,所述WebIDE包括发布面板;所述发布面板包括版本号控件和发布控件;
所述在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录,包括:
基于所述版本号控件所选择的版本号,在检测到针对所述发布控件的触发操作时,生成包括有当前项目所对应的项目标识和所选择的项目版本号的发布指令;
根据所述发布指令依据所述项目标识从所述工作空间表获取相应的项目文件,并在所述版本空间表中新增一条包括所述选择的版本号的版本记录。
本公开实施例中,由于WebIDE包括发布面板,该发布面板包括版本号控件和发布控件,如此为用户交互提供了方便。
根据第一方面,在一种可能的实施方式中,所述选择的版本号为语义化版本号;所述选择的版本号由当前版本号和语义化版本号规则计算得出。
本公开实施例中,在使用时版本控件可直接给出下一版本的版本号选项以供用户直接选择即可,无需用户自己编辑版本号,进而可以避免因失误或计算错误而导致的版本号出现错误的情况发生。
根据第一方面,在一种可能的实施方式中,在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容,包括:
在检测到访问所述网页版集成开发环境的统一资源标识符URI时对所述统一资源标识符进行解析,以获得访问所述指定版本的项目版本号以及与所述指定版本所对应的项目标识;
根据所述项目标识和所述项目版本号,从所述版本空间表获得与所述项目标识及所述项目版本号相对应的项目文件,并采用所述项目版本号相对应的项目文件替换所述工作空间表中对应项目的项目文件字段的内容。
本公开实施例中,通过编码了项目标识的URI即可访问指定版本项目,也即,在WebIDE打开指定项目文件的过程只需要一步,就可以实现直接触达、访问控制和权限校验,如此进一步方便用户使用。
根据第一方面,在一种可能的实施方式中,所述将所述WebIDE的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径,包括:
将所述WebIDE的访问本地的文件***模块更换成访问所述目标数据库的文件***模块;
配置所述目标数据库的文件***模块的数据库名和表名;其中,所述数据库名为与所述目标数据库的名称,所述表名为所述工作空间表的名称。
第二方面,本公开实施例提供了一种项目版本控制装置,包括:
建立模块,用于在在与网页版集成开发环境连接的目标数据库中建立工作空间表和版本空间表;所述工作空间表用于记录开发中项目的项目标识和项目文件;所述版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;所述项目标识用于区分不同的项目;所述项目版本号用于指示在对应项目下的最新项目文件;
修改模块,用于将所述WebIDE的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径;
版本控制模块,用于基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问。
根据第二方面,在一种可能的实施方式中,所述版本控制模块具体用于:
在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录;和/或,
在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容。
根据第二方面,在一种可能的实施方式中,所述WebIDE包括发布面板;所述发布面板包括版本号控件和发布控件;所述版本控制模块具体用于:
基于所述版本号控件所选择的版本号,在检测到针对所述发布控件的触发操作时,生成包括有当前项目所对应的项目标识和所选择的项目版本号的发布指令;
根据所述发布指令依据所述项目标识从所述工作空间表获取相应的项目文件,并在所述版本空间表中新增一条包括所述选择的版本号的版本记录。
根据第二方面,在一种可能的实施方式中,所述选择的版本号为语义化版本号;所述选择的版本号由当前版本号和语义化版本号规则计算得出。
根据第二方面,在一种可能的实施方式中,所述版本控制模块具体用于:
在检测到访问所述网页版集成开发环境的统一资源标识符时对所述统一资源标识符进行解析,以获得访问所述指定版本的项目版本号以及与所述指定版本所对应的项目标识;
根据所述项目标识和所述项目版本号,从所述版本空间表获得与所述项目标识及所述项目版本号相对应的项目文件,并采用所述项目版本号相对应的项目文件替换所述工作空间表中对应项目的项目文件字段的内容。
根据第二方面,在一种可能的实施方式中,所述修改模块具体用于:
将所述WebIDE的访问本地的文件***模块更换成访问所述目标数据库的文件***模块;
配置所述目标数据库的文件***模块的数据库名和表名;其中,所述数据库名为与所述目标数据库的名称,所述表名为所述工作空间表的名称。
第三方面,本公开实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面所述的项目版本控制方法的步骤。
第四方面,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面所述的项目版本控制方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种项目版本控制方法的示例性架构示意图;
图2示出了本公开实施例所提供的一种项目版本控制方法的流程图;
图3示出了本公开实施例所提供的一种建立WebIDE与工作空间表的读写关系的方法流程图;
图4示出了本公开实施例所提供的一种进行项目版本的发布和访问的方法流程图;
图5示出了本公开实施例所提供的一种进行项目版本发布的方法的流程图;
图6示出了本公开实施例所提供的一种进行项目版本访问的方法的流程图;
图7示出了本公开实施例所提供的一种项目版本控制装置的结构示意图;
图8示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
集成开发环境(Integrated Development Environment,简称“IDE”)是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具,集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。
经研究发现,在计算机技术领域,用户(开发人员)通常在主流的IDE(IntegratedDevelopment Environment,集成开发环境)中进行软件开发、代码调试等,如:VisualStudio、Eclipse、Neat Beans、IntelliJ IDEA等IDE。其中,网页版集成开发环境WebIDE是一种提供程序的集成开发环境的网络应用程序。通过WebIDE,用户可以在任何安装了浏览器的设备上进行软件开发。
在软件开发过程中,用户经常会通过版本控制来追踪代码文件的改动。通过追踪代码文件的修改,更容易定位到软件的错误(Bug)。目前,应用最广泛的分布式版本控制软件为git版本控制***,其工作流程为:用户从git代码仓库拉取代码到本地,在本地IDE进行开发,然后提交修改后的代码,并推送到git代码仓库,从而同步给其他用户。
然而,WebIDE一般会根据使用场景而进行定制化,比如定制化为小程序IDE。定制化的WebIDE的底层通常会连接数据库。也就是说,定制化的WebIDE一般读写数据库上的代码文件,而不是本地的代码文件,进而导致在定制化的WebIDE上不能直接使用各种版本控制软件。因此,如何解决定制化的WebIDE上的软件版本控制问题,为本公开要解决的技术问题。
基于上述研究,本公开提供了一种项目版本控制方法,首先在与网页版集成开发环境WebIDE连接的目标数据库中建立工作空间表和版本空间表;其中,工作空间表用于记录开发中项目的项目标识和项目文件;版本空间表用于记录发布项目的项目标识、版本号和项目文件;然后将WebIDE的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径;再基于工作空间表、所述版本空间表以及修改后的访问路径,进行项目版本的发布和/或访问,进而可以实现对项目的版本控制,而无需使用其他版本控制软件,方便用户使用。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
下面结合具体的***应用架构对本申请方案进行详细说明。
请参阅图1,图1示出了可以应用于本申请的项目版本控制方法的示例性***架构。
如图1所示,***架构100可以包括终端设备10、20,网络30和服务器40。网络30用以在终端设备10、20和服务器40之间提供通信链路的介质。网络30可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备10、20通过网络30与服务器40交互,以接收或发送消息等。终端设备10、20上可以安装有各种客户端应用,例如集成开发环境类应用等。
终端设备10、20可以是具有显示屏和处理器的各种电子设备,包括但不限于膝上型便携计算机和台式计算机等等。
服务器40可以是提供各种服务的服务器,例如对终端设备10、20上显示的集成开发环境类应用提供支持的服务器。服务器40可以对接收到的获取与项目名称匹配的项目的获取请求等数据进行分析等处理,并将处理结果(例如入口文件和业务文件)反馈给终端设备。
需要说明的是,本申请实施例所提供的用于项目版本控制方法一般由终端设备10或者20执行,相应地,用于软件版本控制装置一般设置于终端设备10或者20中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
参见图2所示,为本公开实施例提供的项目版本控制方法的流程图,该项目版本控制方法包括以下S101~S103:
S101,在与WebIDE连接的目标数据库中建立工作空间表和版本空间表;工作空间表用于记录开发中项目的项目标识和项目文件;版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;项目标识用于区分不同的项目;项目版本号用于指示在对应项目下的最新项目文件。
集成开发环境(IDE,Integrated Development Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++Builder、Delphi系列等。
WebIDE是一种提供程序的集成开发环境的网络应用程序。通过WebIDE,用户可以在任何安装了浏览器的设备上进行软件开发。本公开实施例中的WebIDE使得软件开发不受某台电脑的限制,使得IDE变得便携,使得软件开发变得更加自由。
示例地,工作空间表用于记录开发中项目的项目标识和项目文件,是指该工作空间表至少包含项目标识和项目文件两个字段,用户可基于该工作空间表进行实时的软件开发,也即该工作空间表用于实时记录用户当前所述输入的代码。版本空间表用于记录发布项目的项目标识、项目版本号和项目文件,是指版本空间表至少包含项目标识、项目版本号和项目文件三个字段,工作空间表所记录的文件代码,在发布项目时会存储到版本空间表中。
其中,项目标识用于将多个项目文件进行区分,例如,当存在多个项目文件时,需要为每个项目文件命名配置项目标识,以将多个不同的项目文件进行区分。项目文件是指具体的项目内容,可以包含多个文件,比如,多个代码文件。项目版本号是版本的标识号。每一个软件都有一个版本号,用于指示在对应项目下的最新项目文件,因此,版本号能使用户了解所使用软件代码否为最新的版本以及它所提供的功能与设施。
可以理解,在为数据库建立工作空间表和版本空间表之前,可以先为WebIDE申请数据库资源。例如,可以直接使用公司或云服务供应商的数据库,可以先申请数据库的帐号和密码,通过帐号和密码即可连接数据库。
S102,将WebIDE的文件访问路径从本地访问路径修改为访问工作空间表的访问路径。
示例地,由于WebIDE的文件***模块默认是读取本地文件的,因此,需要在建立工作空间表和版本空间表后,对WebIDE进行改造,以使其直接读写数据库中的工作空间表,进而建立WebIDE与所述工作空间表的读写关系。
S103,基于工作空间表、版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问。
本公开实施例中,由于在与WebIDE连接的数据库中建立了工作空间表和版本空间表,并将WebIDE的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径,因此无需使用其他版本控制软件,即可在WebIDE中实现对项目的版本控制。也即,通过本公开实施例,可以在WebIDE中实现对项目文件的版本发布和版本访问,进而方便用户使用。
下面将结合具体实施例对上述S102~S103进行详细介绍。
针对上述S102,在建立WebIDE与工作空间表的读写关系时,如图3所示,可以包括以下S1021~1022:
S1021,将WebIDE的访问本地的文件***模块更换成访问目标数据库的文件***模块。
可以理解,由于WebIDE默认读写本地的文件***模块,因此,需要将WebIDE的读写本地的文件***模块替换成读写数据库的文件***模块。其中,读写数据库的文件***模块可以通过一些社区(比如开源社区)获取,在此不做限定。
S1022,配置目标数据库的文件***模块的数据库名和表名;其中,数据库名为与所述目标数据库的名称,表名为所述工作空间表的名称。
需要说明的是,由于使用读写数据库的文件***模块时,需要传递一些参数,比如数据库名和表名,因此,把读写数据库的文件***模块的数据库名和表名参数分别设置成已申请的目标数据库的名称和工作空间表的名称后,即可使得WebIDE直接从目标数据库的工作空间表中读写项目文件,也即,建立了WebIDE与所述工作空间表的读写关系。
针对上述S103,基于工作空间表、版本空间表及修改后的访问路径,进行项目版本的发布和/或访问时,如图4所示,包括以下S1031~S1032:
S1031,在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录。
示例地,可以通过检测用户是否点击了WebIDE中的发布版本按钮或者检测用户是否输入了WebIDE中预设的用于发布版本操作的快捷键,来确定是否检测到用户的发布版本请求。
S1032,在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容。
示例地,可以通过检测用户是否点击了WebIDE中的访问版本按钮或者检测用户是否输入了WebIDE中预设的用于访问版本操作的快捷键,来确定是否检测到用户的访问版本请求。
可以理解,由于WebIDE没有发布面板,因此为了方便与用户的交互,一些实施方式中,可以嵌入一个发布面板来实与用户的交互。该发布面板可以包括版本号控件和发布控件。该版本号控件可以提供多个版本号以供用户选择,该发布控件用于响应用户的操作来发布版本。
因此,本实施方式中,针对上述S1031,在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录,如图5所示,包括以下S10311~S10312:
S10311,基于版本号控件所选择的版本号,在检测到针对发布控件的触发操作时,生成包括有当前项目所对应的项目标识和所选择的项目版本号的发布指令。
示例地,版本号为语义化版本号。其中,语义化版本号是一个版本号标准,解决了版本号格式统一和语义化明确的问题。
示例地,语义化版本号主要由三个部分组成,标准的版本格式为X.Y.Z,每个部分都是一个非负整数,不同部分之间由点号‘.’分隔。从左到右的三个部分分别为主版本号(X)、次版本号(Y)及补丁版本号(Z)。其中,每当进行非向下兼容的修改或者颠覆性的更新时,主版本号加1;每当进行向下兼容的修改或者添加兼容性的新功能时,次版本号加1;没有新功能的引入,仅仅是做一些兼容性的问题修复时,补丁号加1。
示例地,版本号控件可以包括主版本的语义化版本号、次版本的语义化版本号和补丁版本的语义化版本号的选项。用户可以根据当前的修改情况确定是主版本变动、还是次版本变动,亦或是补丁版本变动,进而选择一个版本号来确定要发布的版本号。其中,所确定的版本号可以由当前版本号和语义化版本号规则计算得出。
例如,若当前版本号为1.2.3,则下个主版本的语义化版本号为2.0.0,下个次版本的版语义化版本号为1.3.0,下个补丁版本的语义化版本号为1.2.4。如此,在使用时可直接给出下一版本的版本号选项以供用户直接选择即可,无需用户自己编辑版本号,进而可以避免因失误或计算错误而导致的版本号出现错误的情况发生。
S10312,根据发布指令依据所述项目标识从工作空间表获取相应的项目文件,并在版本空间表中新增一条包括所述选择的版本号的版本记录。
针对上述S1031,在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容时,如图6所示,包括以下S10321~S10322:
S10321,在检测到访问WebIDE的统一资源标识符URI时,对统一资源标识符进行解析,以获得访问指定版本的项目版本号以及与指定版本所对应的项目标识。
示例地,可以在浏览器中输入访问WebIDE的URI,在URI中指定项目标识和项目版本号,对该URI进行解析后即可获得项目标识和项目版本号。
S10322,根据项目标识和项目版本号,从所述版本空间表获得与所述项目标识及所述项目版本号相对应的项目文件,并采用所述项目版本号相对应的项目文件替换所述工作空间表中对应项目的项目文件字段的内容。
示例地,在替换所述工作空间表中对应项目的项目文件字段的内容之后,可以返回WebIDE页面,进而可以通过WebIDE对该指定项目文件进行编辑。
可以理解,定制化的WebIDE和普通WebIDE打开指定项目文件的交互方式是不同的。用普通WebIDE打开指定项目文件的过程一般分为2步:1、打开WebIDE;2在WebIDE中通过工作空间菜单栏打开某个项目。用定制化的WebIDE打开指定项目文件的过程一般只有1步:通过编码了项目标识的URI打开某个项目。如此,可以实现直接触达、访问控制和权限校验,进一步方便用户使用。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例中还提供了与项目版本控制方法对应的增强现实AR交互装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述项目版本控制方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本公开实施例提供的一种项目版本控制装置500的示意图,该项目版本控制装置包括:
建立模块501,用于在在与网页版集成开发环境连接的目标数据库中建立工作空间表和版本空间表;所述工作空间表用于记录开发中项目的项目标识和项目文件;所述版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;所述项目标识用于区分不同的项目;所述项目版本号用于指示在对应项目下的最新项目文件。
修改模块502,用于将所述WebIDE的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径。
版本控制模块503,用于基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问。
在一种可能的实施方式中,所述版本控制模块503具体用于:
在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录;和/或,
在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容。
在一种可能的实施方式中,所述WebIDE包括发布面板;所述发布面板包括版本号控件和发布控件;所述版本控制模块503具体用于:
基于所述版本号控件所选择的版本号,在检测到针对所述发布控件的触发操作时,生成包括有当前项目所对应的项目标识和所选择的项目版本号的发布指令;
根据所述发布指令依据所述项目标识从所述工作空间表获取相应的项目文件,并在所述版本空间表中新增一条包括所述选择的版本号的版本记录。
在一种可能的实施方式中,所述选择的版本号为语义化版本号;所述选择的版本号由当前版本号和语义化版本号规则计算得出。
在一种可能的实施方式中,所述版本控制模块503具体用于:
在检测到访问所述网页版集成开发环境的统一资源标识符时对所述统一资源标识符进行解析,以获得访问所述指定版本的项目版本号以及与所述指定版本所对应的项目标识;
根据所述项目标识和所述项目版本号,从所述版本空间表获得与所述项目标识及所述项目版本号相对应的项目文件,并采用所述项目版本号相对应的项目文件替换所述工作空间表中对应项目的项目文件字段的内容。
在一种可能的实施方式中,所述修改模块502具体用于:
将所述WebIDE的访问本地的文件***模块更换成访问所述目标数据库的文件***模块;
配置所述目标数据库的文件***模块的数据库名和表名;其中,所述数据库名为与所述目标数据库的名称,所述表名为所述工作空间表的名称。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图8所示,为本公开实施例提供的电子设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换。
本申请实施例中,存储器702具体用于存储执行本申请方案的应用程序代码,并由处理器701来控制执行。也即,当电子设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701执行存储器702中存储的应用程序代码,进而执行前述任一实施例中的方法。
其中,存储器702可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器701可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备700的具体限定。在本申请另一些实施例中,电子设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的项目版本控制方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中的项目版本控制方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种项目版本控制方法,其特征在于,包括:
在与网页版集成开发环境连接的目标数据库中建立工作空间表和版本空间表;所述工作空间表用于记录开发中项目的项目标识和项目文件;所述版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;所述项目标识用于区分不同的项目;所述项目版本号用于指示在对应项目下的最新项目文件;
将所述网页版集成开发环境的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径;
基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问;
其中,所述基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问,包括:
在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录;和/或,
在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容。
2.根据权利要求1所述的方法,其特征在于,所述网页版集成开发环境包括发布面板;所述发布面板包括版本号控件和发布控件;
所述在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录,包括:
基于所述版本号控件所选择的版本号,在检测到针对所述发布控件的触发操作时,生成包括有当前项目所对应的项目标识和所选择的项目版本号的发布指令;
根据所述发布指令依据所述项目标识从所述工作空间表获取相应的项目文件,并在所述版本空间表中新增一条包括所述选择的版本号的版本记录。
3.根据权利要求2所述的方法,其特征在于,所述选择的版本号为语义化版本号;所述选择的版本号由当前版本号和语义化版本号规则计算得出。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容,包括:
在检测到访问所述网页版集成开发环境的统一资源标识符时对所述统一资源标识符进行解析,以获得访问所述指定版本的项目版本号以及与所述指定版本所对应的项目标识;
根据所述项目标识和所述项目版本号,从所述版本空间表获得与所述项目标识及所述项目版本号相对应的项目文件,并采用所述项目版本号相对应的项目文件替换所述工作空间表中对应项目的项目文件字段的内容。
5.根据权利要求1-4任一所述的方法,其特征在于,所述将所述网页版集成开发环境的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径,包括:
将所述网页版集成开发环境的访问本地的文件***模块更换成访问所述目标数据库的文件***模块;
配置所述目标数据库的文件***模块的数据库名和表名;其中,所述数据库名为所述目标数据库的名称,所述表名为所述工作空间表的名称。
6.一种项目版本控制装置,其特征在于,包括:
建立模块,用于在在与网页版集成开发环境网页版集成开发环境连接的目标数据库中建立工作空间表和版本空间表;所述工作空间表用于记录开发中项目的项目标识和项目文件;所述版本空间表用于记录发布项目的项目标识、项目版本号和项目文件;所述项目标识用于区分不同的项目;所述项目版本号用于指示在对应项目下的最新项目文件;
修改模块,用于将所述网页版集成开发环境的文件访问路径从本地访问路径修改为访问所述工作空间表的访问路径;
版本控制模块,用于基于所述工作空间表、所述版本空间表、以及修改后的访问路径,进行项目版本的发布和/或访问;
其中,所述版本控制模块具体用于:
在检测到发布版本的操作时,基于修改后的访问路径从所述工作空间表中获取项目文件存入所述版本空间表,并在所述版本空间表中新增一条项目版本号记录;和/或,
在检测到访问指定版本号对应的项目文件的操作时,从所述版本空间表获取与所述指定版本号所对应的项目文件,并采用所述指定版本号所对应的项目文件替换所述工作空间表所对应项目标识的项目文件的字段内容。
7.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1-5任一所述的项目版本控制方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-5任一所述的项目版本控制方法的步骤。
CN202011471408.9A 2020-12-14 2020-12-14 项目版本控制方法、装置、电子设备及存储介质 Active CN112596705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011471408.9A CN112596705B (zh) 2020-12-14 2020-12-14 项目版本控制方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011471408.9A CN112596705B (zh) 2020-12-14 2020-12-14 项目版本控制方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112596705A CN112596705A (zh) 2021-04-02
CN112596705B true CN112596705B (zh) 2024-06-25

Family

ID=75195273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011471408.9A Active CN112596705B (zh) 2020-12-14 2020-12-14 项目版本控制方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112596705B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384511B1 (en) * 2015-12-16 2016-07-05 Apptio, Inc. Version control for resource allocation modeling

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533136B2 (en) * 2005-12-22 2009-05-12 Oracle International Corporation Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US20140222758A1 (en) * 2009-08-14 2014-08-07 Ic Manage, Inc. Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store
US9483516B2 (en) * 2014-03-14 2016-11-01 Sap Se Multi-version concurrency control across row store and column store
US10469515B2 (en) * 2016-02-22 2019-11-05 Lookingglass Cyber Solutions, Inc. Methods and apparatus for efficient storage and processing of global and local cyber threat data in a distributed factor graph database
US10387401B2 (en) * 2016-03-28 2019-08-20 Oracle International Corporation Version control of records in an electronic database
US10606576B1 (en) * 2018-10-26 2020-03-31 Salesforce.Com, Inc. Developer experience for live applications in a cloud collaboration platform
CN111124474B (zh) * 2018-10-31 2022-02-15 北京数聚鑫云信息技术有限公司 一种api版本控制方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384511B1 (en) * 2015-12-16 2016-07-05 Apptio, Inc. Version control for resource allocation modeling

Also Published As

Publication number Publication date
CN112596705A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
US11150893B2 (en) Collaborative software development tool for resolving potential code-change conflicts in real time
WO2021184725A1 (zh) 用户界面测试方法、装置、存储介质及计算机设备
US8392886B2 (en) System, program product, and methods to enable visual recording and editing of test automation scenarios for web application
Zhang et al. Robust annotation of mobile application interfaces in methods for accessibility repair and enhancement
WO2019072110A1 (zh) 应用程序的生成方法、装置、***、设备和介质
US20240045850A1 (en) Systems and methods for database orientation transformation
WO2019155369A1 (en) Tri-affinity model driven method and platform for authoring, realizing, and analyzing a cross-platform application
CN112149109B (zh) 模块化权限控制管理方法及***
US20200050540A1 (en) Interactive automation test
WO2023061874A1 (en) Checking source code validity at time of code update
US9582270B2 (en) Effective feature location in large legacy systems
Heap Ansible: from beginner to pro
CN110688111A (zh) 业务流程的配置方法、装置、服务器和存储介质
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN115904989A (zh) 一种接口测试方法、装置、设备及可读存储介质
Wang et al. Runtime permission issues in android apps: Taxonomy, practices, and ways forward
CN110941547A (zh) 自动化测试用例库管理方法、装置、介质及电子设备
Makarov Yii 1.1 Application Development Cookbook
CN112596705B (zh) 项目版本控制方法、装置、电子设备及存储介质
CN113032004B (zh) 在开发环境中管理开发作业的方法、设备和程序产品
US10530835B2 (en) Application recording
Caya Mastering The Faster Web with PHP, MySQL, and JavaScript: Develop state-of-the-art web applications using the latest web technologies
US20200401381A1 (en) Virtual reality based computer application development
CN113886216A (zh) 接口测试和工具配置方法、装置、电子设备和存储介质
Buckler Node. js: Novice to Ninja

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
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant