CN114047943A - Information processing method, apparatus, device, storage medium and computer program product - Google Patents
Information processing method, apparatus, device, storage medium and computer program product Download PDFInfo
- Publication number
- CN114047943A CN114047943A CN202111320671.2A CN202111320671A CN114047943A CN 114047943 A CN114047943 A CN 114047943A CN 202111320671 A CN202111320671 A CN 202111320671A CN 114047943 A CN114047943 A CN 114047943A
- Authority
- CN
- China
- Prior art keywords
- information
- version
- archive
- specified
- 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.)
- Pending
Links
Images
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/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/143—Reconfiguring to eliminate the error with loss of software functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了信息处理方法、装置、设备、存储介质及计算机程序产品,涉及计算机技术领域,尤其涉及软件开发领域。具体实现方案为:获取远端版本库中指定版本的文件信息和版本信息中的至少一项信息;对该至少一项信息进行归档,得到指定版本的归档包;指定版本的归档包的类型为第一类型或第二类型,第一类型的归档包携带有指定版本的文件信息,第二类型的归档包携带有指定版本的文件信息和版本信息;向第三方存储系统发送指定版本的归档包;第三方存储系统用于存储归档包。本公开的技术方案可将远端版本库中指定版本的文件信息和版本信息中的至少一项信息归档后存储于第三方存储系统,以降低远端版本库的读写压力,提高整体读写性能和吞吐量。
The present disclosure provides an information processing method, apparatus, device, storage medium and computer program product, and relates to the field of computer technology, in particular to the field of software development. The specific implementation scheme is as follows: obtain at least one item of file information and version information of a specified version in the remote repository; archive the at least one item of information to obtain an archive package of the specified version; the type of the archive package of the specified version is The first type or the second type, the archive package of the first type carries the file information of the specified version, and the archive package of the second type carries the file information and version information of the specified version; send the archive package of the specified version to the third-party storage system ; a third-party storage system for storing archive packages. The technical solution of the present disclosure can archive the file information of the specified version and at least one item of version information in the remote version library and store it in a third-party storage system, so as to reduce the read and write pressure of the remote version library and improve the overall read and write performance and throughput.
Description
技术领域technical field
本公开涉及计算机技术领域,尤其涉及软件开发领域,具体涉及一种信息处理方法、装置、设备、存储介质及计算机程序产品。The present disclosure relates to the field of computer technology, in particular to the field of software development, and in particular to an information processing method, apparatus, device, storage medium and computer program product.
背景技术Background technique
当前DevOps(过程、方法与系统的统称)实践已经在软件研发领域被广泛应用,在DevOps实践场景中,Git(分布式版本控制系统)是目前最流行的代码托管工具,每个开发者都可以通过克隆(git clone)的方式在本地拷贝一个来自远端的完整Git仓库。The current practice of DevOps (the collective term for processes, methods and systems) has been widely used in the field of software research and development. In DevOps practice scenarios, Git (distributed version control system) is currently the most popular code hosting tool, and every developer can Copy a complete Git repository from a remote location locally by git clone.
现有的源码分发方式需要从远端Git仓库获取源码,由于Git协议的特殊性,从远端Git仓库获取源码的方式主要有克隆(git clone)和拉取(git pull/fetch),这两种方式都需要在本地创建Git仓库,拉取的数据量较大,默认包含指定分支的所有历史版本。在编译、构建、自动化测试、发布以及上线等各类DevOps实践场景中,单个Git仓库在高并发的情况下,读写性能会急剧下降,特别是对于一些规模较大的Git仓库,读成功率会产生明显的下降,不断的失败重试导致远端Git仓库的读写压力进一步增大,产生恶性循环,下载源码时间进一步被拉长,同时也影响其他推送请求的性能。The existing source code distribution method needs to obtain the source code from the remote Git repository. Due to the particularity of the Git protocol, the main methods for obtaining the source code from the remote Git repository are git clone and git pull/fetch. Both methods need to create a Git repository locally, and the amount of data to be pulled is large, and all historical versions of the specified branch are included by default. In various DevOps practice scenarios such as compilation, construction, automated testing, release, and launch, the read and write performance of a single Git repository will drop sharply in the case of high concurrency, especially for some large-scale Git repositories, the read success rate There will be a significant decline, and the continuous failure and retries will further increase the read and write pressure on the remote Git repository, resulting in a vicious circle, further lengthening the time to download the source code, and also affecting the performance of other push requests.
发明内容SUMMARY OF THE INVENTION
本公开提供了一种信息处理方法、装置、设备、存储介质及计算机程序产品。The present disclosure provides an information processing method, apparatus, device, storage medium, and computer program product.
根据本公开的第一方面,提供了一种信息处理方法,包括:According to a first aspect of the present disclosure, an information processing method is provided, comprising:
获取远端版本库中指定版本的文件信息和版本信息中的至少一项信息;Obtain at least one of the file information and version information of the specified version in the remote repository;
对该至少一项信息进行归档,得到指定版本的归档包;指定版本的归档包的类型为第一类型或第二类型,第一类型的归档包携带有指定版本的文件信息,第二类型的归档包携带有指定版本的文件信息和版本信息;The at least one item of information is archived to obtain an archive package of a specified version; the type of the archive package of the specified version is the first type or the second type, the archive package of the first type carries the file information of the specified version, and the archive package of the second type is of the first type or the second type. The archive package carries the file information and version information of the specified version;
向第三方存储系统发送指定版本的归档包;第三方存储系统用于存储归档包。Send the archive package of the specified version to the third-party storage system; the third-party storage system is used to store the archive package.
根据本公开的第二方面,提供了一种信息处理装置,包括:According to a second aspect of the present disclosure, there is provided an information processing apparatus, comprising:
信息获取模块,用于获取远端版本库中指定版本的文本信息和版本信息中的至少一项信息;an information acquisition module, used to acquire at least one item of text information and version information of a specified version in the remote repository;
归档模块,用于对该至少一项信息进行归档,得到指定版本的归档包;指定版本的归档包的类型为第一类型或第二类型,第一类型的归档包携带有指定版本的文件信息,第二类型的归档包携带有指定版本的文件信息和版本信息;An archiving module, configured to archive the at least one item of information to obtain an archive package of a specified version; the type of the archive package of the specified version is the first type or the second type, and the archive package of the first type carries the file information of the specified version , the second type of archive package carries the file information and version information of the specified version;
归档包存储模块,向第三方存储系统发送指定版本的归档包;第三方存储系统用于存储归档包。The archive package storage module sends the archive package of the specified version to the third-party storage system; the third-party storage system is used to store the archive package.
根据本公开的第三方面,提供了一种电子设备,包括:According to a third aspect of the present disclosure, there is provided an electronic device, comprising:
至少一个处理器;以及at least one processor; and
与至少一个处理器通信连接的存储器;其中,a memory communicatively coupled to the at least one processor; wherein,
存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行本公开任一实施例提供的信息处理方法。The memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the information processing method provided by any embodiment of the present disclosure.
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开任一实施例提供的信息处理方法。According to a fourth aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause a computer to execute the information processing method provided by any embodiment of the present disclosure.
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现本公开任一实施例提供的信息处理方法。According to a fifth aspect of the present disclosure, there is provided a computer program product, including a computer program, which when executed by a processor implements the information processing method provided by any embodiment of the present disclosure.
本公开的技术方案可至少实现以下有益效果:The technical solution of the present disclosure can achieve at least the following beneficial effects:
本公开的技术方案可将远端版本库中指定版本的文件信息和版本信息中的至少一项信息归档,将归档后得到的归档包存储于第三方存储系统,第三方存储系统可存储归档包,在需要的时候向用户提供归档包,进而提供对应的版本信息,可降低远端版本库的读写压力,提高整体读写性能和吞吐量;归档包可以携带指定版本的版本信息或不携带指定版本的版本信息,可适用于需要还原出原始版本的版本信息的场景或不需要还原出原始版本的版本信息的场景,以满足不同的使用需求。The technical solution of the present disclosure can archive at least one item of file information and version information of a specified version in a remote version library, and store the archived package obtained after archiving in a third-party storage system, and the third-party storage system can store the archived package. , to provide users with archive packages when needed, and then provide corresponding version information, which can reduce the read and write pressure on the remote repository and improve the overall read and write performance and throughput; archive packages can carry version information of a specified version or not. The version information of the specified version can be applied to scenarios that need to restore the version information of the original version or scenarios that do not need to restore the version information of the original version to meet different usage requirements.
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。It should be understood that what is described in this section is not intended to identify key or critical features of embodiments of the disclosure, nor is it intended to limit the scope of the disclosure. Other features of the present disclosure will become readily understood from the following description.
附图说明Description of drawings
附图用于更好地理解本方案,不构成对本公开的限定。其中:The accompanying drawings are used for better understanding of the present solution, and do not constitute a limitation to the present disclosure. in:
图1是本公开实施例提供的一种信息处理方法的流程示意图;1 is a schematic flowchart of an information processing method provided by an embodiment of the present disclosure;
图2是本公开实施例中基于Git shallow bundle的方式获取指定版本的原理示意图;2 is a schematic diagram of the principle of obtaining a specified version based on a Git shallow bundle in an embodiment of the present disclosure;
图3是本公开实施例提供的另一种信息处理方法的部分流程示意图;3 is a schematic partial flowchart of another information processing method provided by an embodiment of the present disclosure;
图4是本公开实施例提供的信息处理方法的一种示例的示意图;4 is a schematic diagram of an example of an information processing method provided by an embodiment of the present disclosure;
图5是本公开实施例提供的一种信息处理装置的结构框架示意图;5 is a schematic structural framework diagram of an information processing apparatus provided by an embodiment of the present disclosure;
图6是本公开实施例中地址生成模块的结构框架示意图;6 is a schematic structural framework diagram of an address generation module in an embodiment of the present disclosure;
图7是本公开实施例提供的一种电子设备的结构框架示意图。FIG. 7 is a schematic structural framework diagram of an electronic device provided by an embodiment of the present disclosure.
具体实施方式Detailed ways
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。Exemplary embodiments of the present disclosure are described below with reference to the accompanying drawings, which include various details of the embodiments of the present disclosure to facilitate understanding and should be considered as exemplary only. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present disclosure. Also, descriptions of well-known functions and constructions are omitted from the following description for clarity and conciseness.
首先对本公开涉及到的几个术语做如下介绍:First, several terms involved in the present disclosure are introduced as follows:
DevOps:Development和Operations的组合词,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障部门之间的沟通、协作与整合。DevOps要求采用高度标准化、自动化的流程和工具以支撑各角色的高效协作,从而达到更快捷、迅速、频繁和可靠的软件交付目标。DevOps: A combination of Development and Operations, a collective term for a set of processes, methods, and systems used to facilitate communication, collaboration, and integration between development (application/software engineering), technical operations, and quality assurance departments. DevOps requires the adoption of highly standardized and automated processes and tools to support the efficient collaboration of various roles, so as to achieve the goal of faster, faster, more frequent and more reliable software delivery.
Git:一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git: An open source distributed version control system that can handle version management of small to very large projects efficiently and at high speed.
云原生:一种构建和运行充分利用云计算模型优势的应用程序的方法,云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格(Service Mesh)、微服务、不可变基础设施和声明式API(Application Programming Interface,应用程序接口)。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。Cloud-native: An approach to building and running applications that take advantage of the cloud computing model. Cloud-native technology enables organizations to build and run elastically scalable applications in new and dynamic environments such as public, private, and hybrid clouds . Representative technologies of cloud native include containers, service mesh, microservices, immutable infrastructure and declarative API (Application Programming Interface). These techniques enable the construction of loosely coupled systems that are fault-tolerant, easy to manage, and easy to observe. Combined with reliable automation, cloud-native technologies make it easy for engineers to make frequent and predictable breaking changes to the system.
云原生时代DevOps自身在大规模的自动化流程和工具的场景下同样也广泛采用大型分布式构建、大型分布式持续集成/交付等技术架构体系。云原生时代,容器化是非常重要的表现,容器化给源码托管带来的挑战主要来自于无状态化以及高并发高性能访问。In the cloud-native era, DevOps itself also widely adopts technical architecture systems such as large-scale distributed construction and large-scale distributed continuous integration/delivery in the context of large-scale automated processes and tools. In the cloud-native era, containerization is a very important manifestation. The challenges brought by containerization to source code hosting mainly come from statelessness and high-concurrency and high-performance access.
传统的源码分发方式,主要是通过克隆(git clone)和拉取(git pull/fetch)两种方式在本地创建Git仓库,而在编译、构建、自动化测试、发布以及上线等各类DevOps实践场景中,真正需要的只是某个指定版本的源码,大量无关的版本历史记录的传输下载会占用计算资源,降低研发效率。此外,在大规模的DevOps场景中,大量不必要的数据读取及传输会造成源码下载效率的低下,计算资源及网络资源的浪费。因而,传统的源码分发方式无法满足大规模DevOps实践对于高并发、高性能的实际需求。The traditional source code distribution method mainly creates Git warehouses locally through two methods: git clone and git pull/fetch. What is really needed is the source code of a specific version, and the transmission and download of a large number of irrelevant version history records will occupy computing resources and reduce R&D efficiency. In addition, in large-scale DevOps scenarios, a large amount of unnecessary data reading and transmission will result in low source code download efficiency and waste of computing resources and network resources. Therefore, the traditional source code distribution method cannot meet the actual requirements of large-scale DevOps practice for high concurrency and high performance.
针对该问题,目前主要有以下几种解决方案:There are mainly the following solutions to this problem:
方案一,在远端服务器增加读节点,以应对大规模DevOps自动化任务对源码的高并发访问压力。The first solution is to add read nodes on the remote server to cope with the high concurrent access pressure to the source code of large-scale DevOps automation tasks.
方案二,在本地客户端增加源码缓存,以缓解远端服务器的读取压力。The second solution is to increase the source code cache on the local client to relieve the reading pressure on the remote server.
方案三,在远端服务器对Git协议进行升级,实现单个版本的拉取,以减少不必要的资源浪费。Solution 3: Upgrade the Git protocol on the remote server to pull a single version to reduce unnecessary waste of resources.
但上述方案存在以下问题:But the above scheme has the following problems:
方案一中主节点和读节点的数据同步存在延时,数据的同步性较差,同时,受限于Git本身的原理以及其在实践中需要处理大量小文件的特征,单个Git服务实例能够支撑的并发数非常有限。In
方案二不适用于云原生时代。云原生时代容器中运行的服务通常会挂载第三方的存储服务,因此,受限于Git工作空间在任意给定时刻只能有一个给定的版本所对应的视图的特性,容器中的服务无法在同一个工作空间中同时看到多版本的视图,也因此无法同时在同一空间中同时对多版本的源码进行使用。
方案三无法获取指定版本且无法彻底解决远端Git仓库的高并发读问题。首先,远端Git仓库的变更随时可能发生,客户端无法知道克隆的深度或者版本的时间,因而不能精确获取指定版本;其次,方案三必须从版本的最新提交信息,即分支头指针(HEAD)所指向的提交信息(commit)开始获取远端Git仓库的源码,为了获取某一版本的源码,必须一并获取从当前最新提交信息回溯到指定提交信息(指定commit)的所有提交信息,因而无法彻底解决远端Git仓库的高并发读问题,依然存在大量的资源浪费。Solution 3 cannot obtain the specified version and cannot completely solve the high concurrent read problem of the remote Git repository. First, changes to the remote Git repository may occur at any time, and the client cannot know the depth of the clone or the time of the version, so it cannot accurately obtain the specified version; secondly, the third solution must be from the latest commit information of the version, that is, the branch head pointer (HEAD) The commit information (commit) pointed to starts to obtain the source code of the remote Git repository. In order to obtain the source code of a certain version, all the commit information from the current latest commit information back to the specified commit information (specified commit) must be obtained together, so it is impossible to obtain the source code of the remote Git repository. Completely solve the high concurrent read problem of the remote Git repository, but there is still a lot of waste of resources.
根据本公开的实施例,本公开提供了一种信息处理方法,可应用于Git服务器或其它服务器,如图1所示,该方法包括:According to an embodiment of the present disclosure, the present disclosure provides an information processing method, which can be applied to a Git server or other servers. As shown in FIG. 1 , the method includes:
S101,获取远端版本库中指定版本的文件信息和版本信息中的至少一项信息。S101: Acquire at least one item of file information and version information of a specified version in a remote repository.
本公开实施例中的远端版本库可以是远端Git服务器的Git仓库,后文中简称为远端Git仓库。The remote version repository in the embodiment of the present disclosure may be a Git repository of a remote Git server, which is hereinafter referred to as a remote Git repository.
本公开实施例中,指定版本的文件信息可以包括文本文件(也即源码文件)和二进制文件中的至少一种文件的信息,指定版本的版本信息可以包括指定版本的历史记录。In the embodiment of the present disclosure, the file information of the specified version may include information of at least one of a text file (ie, a source code file) and a binary file, and the version information of the specified version may include a history record of the specified version.
可选的,获取远端版本库中指定版本的文件信息和/或版本信息的操作可以通过归档任务构建服务来实现,也可以通过其它服务来实现,可根据实际情况设置相应的服务,本公开的实施例对此不作限定。Optionally, the operation of obtaining the file information and/or version information of the specified version in the remote repository can be realized through the archiving task construction service, or through other services, and the corresponding service can be set according to the actual situation. The embodiment does not limit this.
S102,对指定版本的文件信息和版本信息中的至少一项信息进行归档,得到指定版本的归档包。S102: Archive the file information of the specified version and at least one item of version information to obtain an archive package of the specified version.
指定版本的归档包的类型为第一类型或第二类型,第一类型的归档包有携带指定版本的文件信息,第二类型的归档包携带有指定版本的文件信息和版本信息。The archive package of the specified version is of the first type or the second type. The archive package of the first type carries the file information of the specified version, and the archive package of the second type carries the file information and version information of the specified version.
在基于第一类型进行归档的场景中,可对指定版本的文件信息进行归档,得到指定版本的第一类型的归档包,在基于第二类型进行归档的场景中,可对指定版本的文件信息和版本信息进行归档,得到指定版本的第二类型的归档包。第一类型的归档包和第二类型的归档包均可用于还原(通过文件信息还原)指定版本的文件,第二类型的归档包还可用于还原(通过版本信息还原)指定版本的版本记录。In the scenario of archiving based on the first type, the file information of the specified version can be archived to obtain the archive package of the first type of the specified version. In the scenario of archiving based on the second type, the file information of the specified version can be archived. And the version information is archived to obtain the second type of archive package of the specified version. Both the first type of archive package and the second type of archive package can be used to restore (restore through file information) files of a specified version, and the second type of archive package can also be used to restore (restore through version information) version records of a specified version.
可选的,对指定版本的文件信息和/或版本信息进行归档的操作可以通过归档任务处理服务实现,也可以通过其它服务来实现,可根据实际情况设置相应的服务,本公开的实施例对此不作限定。Optionally, the operation of archiving the file information and/or version information of a specified version can be implemented through an archiving task processing service, or through other services, and a corresponding service can be set according to the actual situation. This is not limited.
S103,向第三方存储系统发送指定版本的归档包。S103: Send an archive package of a specified version to a third-party storage system.
第三方存储系统用于存储归档包。A third-party storage system is used to store archived packages.
可选的,向第三方存储系统发送指定版本的归档包的操作可以通过归档存储和分发服务来实现,也可以通过其它服务来实现,可根据实际情况设置相应的服务,本公开的实施例对此不作限定。Optionally, the operation of sending the specified version of the archive package to the third-party storage system can be implemented through the archive storage and distribution service, or through other services, and the corresponding service can be set according to the actual situation. This is not limited.
本公开的技术方案可将远端版本库中指定版本的文件信息和版本信息中的至少一项信息归档,将归档后得到的归档包存储于第三方存储系统,第三方存储系统可存储归档包,在需要的时候向用户提供归档包,进而提供对应的版本信息,可降低远端版本库的读写压力,提高整体读写性能和吞吐量;归档包可以携带指定版本的版本信息或不携带指定版本的版本信息,可适用于需要还原出原始版本的版本信息的场景或不需要还原出原始版本的版本信息的场景,以满足不同的使用需求。The technical solution of the present disclosure can archive at least one item of file information and version information of a specified version in a remote version library, and store the archived package obtained after archiving in a third-party storage system, and the third-party storage system can store the archived package. , to provide users with archive packages when needed, and then provide corresponding version information, which can reduce the read and write pressure on the remote repository and improve the overall read and write performance and throughput; archive packages can carry version information of a specified version or not. The version information of the specified version can be applied to scenarios that need to restore the version information of the original version or scenarios that do not need to restore the version information of the original version to meet different usage requirements.
本公开实施例中的第三方存储系统可设置于远端Git服务器或其它服务器,采用第三方存储系统来存储和下发归档包,可缓解远端版本库在高并发场景中的读写压力,消除对远端版本库的单点依赖问题。The third-party storage system in the embodiment of the present disclosure can be set on a remote Git server or other servers, and the third-party storage system is used to store and deliver archive packages, which can relieve the read and write pressure of the remote repository in high concurrency scenarios. Eliminate single-point dependencies on remote repositories.
在一种可选的实施方式中,获取远端版本库中指定版本的文件信息和版本信息中的至少一项信息,包括:在远端版本库中存在版本发生变更的情况下,获取发生变更的版本的文件信息和版本信息中的至少一项信息,作为指定版本的文件信息和版本信息中的至少一项信息。In an optional implementation manner, acquiring at least one item of file information and version information of a specified version in the remote repository includes: in the case of a version change in the remote repository, acquiring the changed version The version of the file information and at least one item of version information is used as at least one item of information in the specified version of the file information and version information.
可选的,远端版本库是否存在版本发生了变更,可以通过对远端版本库中的版本进行监听的方式或轮询的方式来确定,还可以通过其它方式实现,可确定出远端版本库中的版本是否发生了变更即可。Optionally, whether there is a version change in the remote repository can be determined by monitoring the version in the remote repository or polling, or by other methods, and the remote version can be determined. Check if the version in the library has changed.
在一个示例中,归档任务构建服务可对远端版本库进行监听,确定远端版本库中的各版本的源码信号是否发生了变更,当归档任务构建服务监听到远端版本库中有一个或多个版本的文件信息发生了变更时,认为该一个或多个版本发生了变更,归档任务构建服务获取该一个或多个变更版本(作为指定版本)的基本信息,基于该基本信息创建归档任务,并将归档任务发送给下一个服务,例如归档任务处理服务;归档任务处理服务可从远端版本库中获取变更版本的文件信息和版本信息中的至少一项信息,所获取的信息可根据实际需要归档的类型确定。其中,变更版本的基本信息可以包括变更版本的提交信息。In one example, the archiving task construction service can monitor the remote repository to determine whether the source code signal of each version in the remote repository has changed. When the file information of multiple versions has changed, it is considered that the one or more versions have changed. The archive task construction service obtains the basic information of the one or more changed versions (as the specified version), and creates an archive task based on the basic information. , and send the archiving task to the next service, such as the archiving task processing service; the archiving task processing service can obtain at least one of the file information and version information of the changed version from the remote repository, and the obtained information can be based on The type of file that actually needs to be archived is determined. Wherein, the basic information of the changed version may include the submission information of the changed version.
在一个示例中,归档任务构建服务可对远端版本库进行轮询,定期检查远端版本库的变更日志,以确定远端版本库中的各版本的文件信息是否发生了变更;当确定远端版本库中有一个或多个版本的文件信息发生了变更时,认为该一个或多个版本发生了变更,归档任务构建服务可获取远端版本库中一个或多个变更版本(作为指定版本)的基本信息,基于该基本信息创建归档任务,并将归档任务发送给下一个服务,例如归档任务处理服务;归档任务处理服务可从远端版本库中获取变更版本的文件信息和版本信息中的至少一项信息,所获取的信息可根据实际需要归档的类型确定。其中,变更版本的基本信息可以包括变更版本的提交信息。在一个示例中,变更版本具有指定提交信息。In one example, the archiving task construction service may poll the remote repository, and periodically check the change log of the remote repository to determine whether the file information of each version in the remote repository has changed; When the file information of one or more versions in the remote repository has changed, it is considered that the one or more versions have changed, and the archive task build service can obtain one or more changed versions in the remote repository (as the specified version). ), create an archive task based on the basic information, and send the archive task to the next service, such as the archive task processing service; the archive task processing service can obtain the file information and version information of the changed version from the remote repository At least one item of information, the acquired information can be determined according to the type of archive that actually needs to be archived. Wherein, the basic information of the changed version may include the submission information of the changed version. In one example, the change version has the specified commit information.
上述通过监听或轮询来确定版本变更进而创建归档任务的实施方式,是一种主动归档的方式,可实时获取版本的变更信息,当本地客户端的变更被发送到远端版本库时,归档任务构建服务可快速监听到该变更,进而快速响应,创建归档任务,有助于提升源码的归档效率。The above implementation of determining version changes by monitoring or polling and then creating an archiving task is an active archiving method, which can obtain version change information in real time. When the changes of the local client are sent to the remote repository, the archiving task The build service can quickly monitor the change, and then respond quickly to create an archiving task, which helps to improve the efficiency of source code archiving.
在另一种可选的实施方式中,获取远端版本库中指定版本的文件信息和版本信息中的至少一项信息,包括:响应于客户端发送的归档指令,获取归档指令所指定的远端版本库中的版本的文件信息和版本信息中的至少一项信息,作为指定版本的文件信息和版本信息中的至少一项信息。In another optional implementation manner, acquiring at least one item of file information and version information of a specified version in the remote repository includes: in response to an archive instruction sent by the client, acquiring the remote file specified by the archive instruction At least one item of file information and version information of the version in the version repository of the terminal is used as at least one item of information of the file information and version information of the specified version.
可选的,归档指令携带有指定提交信息,该指定提交信息可用于确定归档指令所指定的远端版本库中的一个或多个版本。Optionally, the archive instruction carries specified commit information, and the specified commit information can be used to determine one or more versions in the remote repository specified by the archive instruction.
在一个示例中,归档任务构建服务在接收到客户端发送的归档指令后,获取该归档指令携带的指定提交信息,根据该指定提交信息在远端版本库中获取归档指令所指定的一个或多个版本(作为指定版本)的基本信息,基于该基本信息创建归档任务,并将归档任务发送给下一个服务,例如归档任务处理服务,归档任务处理服务可从远端版本库中获取发生变更的版本的文件信息和版本信息中的至少一项信息,所获取的信息可根据实际需要归档的类型确定。其中,归档指令所指定的版本的基本信息可以包括提交信息。In one example, after receiving the archiving instruction sent by the client, the archiving task construction service obtains the specified commit information carried by the archiving instruction, and obtains one or more specified commit information from the remote repository according to the specified commit information. Basic information of a version (as a specified version), create an archive task based on the basic information, and send the archive task to the next service, such as the archive task processing service, which can obtain the changed files from the remote repository. At least one item of the file information of the version and the version information, the acquired information can be determined according to the type of archive that actually needs to be archived. The basic information of the version specified by the filing instruction may include submission information.
基于客户端发送的归档指令创建归档任务的方式是一种被动归档的方式,可基于用户的实际需求,针对性的实现源码的归档。The method of creating an archiving task based on the archiving instruction sent by the client is a passive archiving method, which can realize the archiving of the source code in a targeted manner based on the actual needs of the user.
基于以上内容,本公开实施例中获取远端版本库中指定版本的文件信息和版本信息中至少一种信息的方式,既可适用于主动归档的应用场景,也可以适用于被动归档的应用场景,灵活性较强,可满足不同的归档需求。Based on the above content, the method of obtaining at least one of the file information and version information of the specified version in the remote repository in the embodiment of the present disclosure can be applied to both the application scenario of active archiving and the application scenario of passive archiving , which is more flexible and can meet different archiving needs.
可选的,第一类型可以是Git archive,该类型用于实现文件信息的归档,Gitarchive的归档包只对应一个指定版本的完整文件内容,不具有还原该指定版本的任何信息。Optionally, the first type may be Git archive, which is used to archive file information. The archive package of Gitarchive only corresponds to the complete file content of a specified version, and does not have any information for restoring the specified version.
在一种可选的实施方式中,第二类型不支持Git的浅克隆(shallow clone)协议,该协议可简称为Git shallow clone。例如第二类型可以是Git bundle,该类型用于实现文件信息和版本信息的归档。Git bundle的归档包携带有用于还原指定版本的原生文件的必要信息,具体地,携带有用于在本地Git仓库(或称Git版本库)已有的历史记录基础之上,追加新的历史记录所需的Git对象(object),通过Git bundle归档包可以以增量的方式在本地Git仓库已有提交信息历史之上追加新的提交信息,从而减少对远端Git仓库完整提交信息历史请求的需求。In an optional implementation, the second type does not support Git's shallow clone protocol, which may be referred to as Git shallow clone for short. For example, the second type may be a Git bundle, which is used for archiving file information and version information. The archive package of the Git bundle carries the necessary information for restoring the native file of the specified version. The required Git object (object), through the Git bundle archive, can incrementally add new submission information to the existing submission information history of the local Git warehouse, thereby reducing the need for the complete submission information history request of the remote Git warehouse .
在另一种可选的实施方式中,第二类型支持Git的浅克隆协议。例如第二类型可以是Git shallow bundle,一种特殊的二进制文件格式,该类型用于实现浅克隆兼容的文件信息和版本信息的归档。Git shallow bundle的归档包携带有用于还原指定版本的原生文件的必要信息,Git shallow bundle的归档包包含需要归档的版本内容,包括版本的引用(ref)、提交信息、树(tree)、对象(object)等。In another optional implementation, the second type supports Git's shallow clone protocol. For example, the second type may be Git shallow bundle, a special binary file format used to implement shallow clone compatible archive of file information and version information. The archive package of Git shallow bundle carries the necessary information for restoring the native file of the specified version. The archive package of Git shallow bundle contains the version content that needs to be archived, including version reference (ref), commit information, tree (tree), object ( object), etc.
本公开实施例提供几种类型(例如Git archive、Git bundle和Git shallowbundle)的归档包可实现一次计算和永久存储,进而可减少对远端版本库进行频繁读写而产生的大量不必要的重复计算,从而能够降低对CPU(Central Process Unit,中央处理器)、内存、网络等的资源浪费,在相同的服务器资源下可提供更多的用户读写量支持,以缓解远端版本库在高并发场景中的读写压力。The embodiments of the present disclosure provide archive packages of several types (eg, Git archive, Git bundle, and Git shallowbundle), which can realize one-time calculation and permanent storage, thereby reducing a large number of unnecessary repetitions caused by frequent reading and writing of remote repository It can reduce the waste of resources such as CPU (Central Process Unit, central processing unit), memory, network, etc., and can provide more user read and write support under the same server resources, so as to alleviate the high load of the remote version library. Read and write pressure in concurrent scenarios.
本公开实施例提供的上述几种类型的归档包可与各类存储服务进行适配,进而可将归档包存储于各类读优化的存储服务中,并通过CDN(Content Delivery Network,内容分发网络)或其它手段进行读加速,能够有效地提升用户对文件信息和/或版本信息读操作的访问速度,保障用户的读成功率。在实际的DevOps场景下,流量具有明显的读多写少的特征,上述能够适配到各类读优化存储服务的方案,能够有效保障DevOps在文件信息和/或版本信息获取阶段的成功率,减少DevOps在文件信息和/或版本信息的获取阶段的耗时。The above-mentioned several types of archive packages provided by the embodiments of the present disclosure can be adapted to various storage services, so that the archive packages can be stored in various read-optimized storage services, and distributed through CDN (Content Delivery Network, Content Delivery Network). ) or other means for read acceleration, which can effectively improve the user's access speed to the file information and/or version information read operation, and ensure the user's read success rate. In the actual DevOps scenario, the traffic has obvious characteristics of more reads and fewer writes. The above solutions that can be adapted to various read-optimized storage services can effectively guarantee the success rate of DevOps in the stage of obtaining file information and/or version information. Reduce DevOps time-consuming in the acquisition phase of file information and/or version information.
本公开实施例中的第二类型可以是支持Git的浅克隆协议的类型,例如可以是Gitshallow bundle,该类型能够提供远端版本库中的一个或多个指定版本,很好地满足用户高速、准确地读于远端版本库中任意子版本库的需求。The second type in the embodiment of the present disclosure may be a type that supports the shallow clone protocol of Git, for example, a Gitshallow bundle, which can provide one or more specified versions in a remote repository, which can well satisfy users' high-speed, high-speed, Read exactly the requirements of any subrepository in the remote repository.
在大量研发场景,特别是CI(Continuous Integration,持续集成)/CD(Continuous Delivery,持续交付)流程中,远端版本库的大量历史提交信息(历史commit)对于实际任务的执行来说没有实际作用,用户只是希望获取到远端版本库中指定版本的文件信息和/或版本信息,并针对这些文件信息和/或版本信息进行检查、扫描、构建、编译、发布、部署等流程。这些常见流程通常只与特定版本的文件信息和/或版本信息相关,大量历史记录的读取与传输对于计算与网络资源来说是一种巨大的浪费,也制约了大规模DevOps实践的开展。Git shallow bundle支持原生的Git shallow clone的特性,用户能够通过执行拉取(git pull/fetch)命令来从远端获取到最新的提交信息。In a large number of R&D scenarios, especially in the CI (Continuous Integration, continuous integration)/CD (Continuous Delivery, continuous delivery) process, a large amount of historical submission information (historical commit) of the remote repository has no practical effect on the execution of actual tasks. , the user just wants to obtain the file information and/or version information of the specified version in the remote repository, and check, scan, build, compile, publish, deploy and other processes for the file information and/or version information. These common processes are usually only related to specific versions of file information and/or version information. The reading and transmission of a large number of historical records is a huge waste of computing and network resources, and also restricts the development of large-scale DevOps practices. Git shallow bundle supports the native Git shallow clone feature, and users can get the latest commit information from the remote end by executing the pull (git pull/fetch) command.
此外,传统方案通常直接基于Git shallow clone来加快获取远端版本库的提交信息,该方案只能通过--depth<depth>参数获取指定分支上最新提交信息的<depth>+1个历史提交信息,或者通过--shallow-since<date>获取某一时间之后的提交信息,但通过--depth<depth>及--shallow-since<date>都无法准确获取深度和版本时间的缺陷。而基于本公开实施例中的Git shallow bundle这一解决方案,用户能够以原生的方式,获取到远端版本库中包含指定提交信息(可由用户所需的任意多个提交信息所构成)的Git shallowclone本地版本库文件,即远端版本库的任意子版本,弥补了原生的Git shallow clone的缺陷,增强了Git在读取子版本历史记录上的灵活性,更适合大规模DevOps。In addition, the traditional solution is usually directly based on Git shallow clone to speed up the acquisition of the commit information of the remote repository. This scheme can only obtain the latest commit information on the specified branch through the --depth<depth> parameter <depth>+1 historical commit information , or through --shallow-since<date> to get the commit information after a certain time, but through --depth<depth> and --shallow-since<date> can not accurately get the depth and version time defect. Based on the Git shallow bundle solution in the embodiment of the present disclosure, the user can natively obtain the Git in the remote repository that contains the specified commit information (which can be composed of any number of commit information required by the user) Shallowclone the local repository file, that is, any subversion of the remote repository, makes up for the shortcomings of the native Git shallow clone, enhances the flexibility of Git in reading the subversion history, and is more suitable for large-scale DevOps.
下面参照图2对本公开实施例中通过Git shallow bundle的方式获取指定版本的方案作进一步介绍。Referring to FIG. 2 , the solution for obtaining a specified version by means of Git shallow bundle in the embodiment of the present disclosure will be further introduced below.
图2第一行示出了远端版本库在某个分支的版本,其中包括该分支的头指针的版本、包含提交信息1(commit 1)的版本以及包含提交信息2(commit 2)的版本。图2第二行示出了本地通过Git shallow clone的方式获取包含commit 2的版本的示意图,图2第三行示出了本地通过Git shallow clone的方式获取包含commit 2和commit 1的版本的示意图,由第二行和第三行的示意图可以看出,本地通过Git shallow clone的方式获取指定版本的文件信息和/或版本信息时,需要从分支的最新提交信息,即头指针(HEAD)所指向的提交信息开始回溯到指定提交信息(commit 2和/或commit 1)的所有提交信息,存在不必要的回溯。The first line of Figure 2 shows the version of the remote repository in a branch, including the version of the head pointer of the branch, the version containing commit information 1 (commit 1), and the version containing commit information 2 (commit 2) . The second row of Figure 2 shows a schematic diagram of locally obtaining the version containing commit 2 through Git shallow clone, and the third row of Figure 2 shows a schematic diagram of locally obtaining the version containing commit 2 and commit 1 through Git shallow clone , as can be seen from the schematic diagrams in the second and third lines, when locally obtaining the file information and/or version information of the specified version by means of Git shallow clone, it is necessary to obtain the latest commit information from the branch, that is, the head pointer (HEAD) The commit information pointed to starts backtracking to all commit information of the specified commit information (commit 2 and/or commit 1), with unnecessary backtracking.
图2第四行示出了本地通过本公开实施例中的Git bundle的方式获取包含commit2的版本的示意图,图2第五行示出了本地通过本公开实施例中的Git bundle的方式获取包含commit 2和commit 1的版本的示意图,由第四行和第五行的示意图可以看出,本地通过Git bundle的方式获取指定版本的文件信息和/或版本信息时,同样需要从分支的最新提交信息,即头指针(HEAD)所指向的提交信息开始回溯到Git bundle归档包本身携带的所有提交信息,且在本地使用指定提交信息(commit 2和/或commit 1)的版本时,本地版本库中必须有指定提交信息(commit 2和/或commit 1)的历史提交信息的版本Git bundle归档包正常使用的先决条件,否则无法正常使用Git bundle归档包。The fourth row of FIG. 2 shows a schematic diagram of locally obtaining a version containing commit2 by means of the Git bundle in the embodiment of the present disclosure, and the fifth row of FIG. 2 shows the local acquisition of the version containing commit2 by means of the Git bundle in the embodiment of the present disclosure. The schematic diagrams of
图2第六行示出了本地通过本公开实施例中的Git shallow bundle的方式获取包含commit 2的版本的示意图,图2第七行示出了本地通过本公开实施例中的Git shallowbundle的方式获取包含commit 2和commit 1的版本的示意图,由第六行和第七行的示意图可以看出,本、通过本公开实施例中的Git shallow bundle的方式可以直接获取指定版本的文件信息和/或版本信息,无需从分支的最新提交信息开始逐一回溯,可大大减少不必要的回溯,减少资源的浪费,同时,可在本地使用指定提交信息(commit 2和/或commit 1)的版本,不要本地版本库中有指定提交信息(commit 2和/或commit 1)的历史提交信息的版本。The sixth row of FIG. 2 shows a schematic diagram of locally obtaining the version containing commit 2 through the Git shallow bundle in the embodiment of the present disclosure, and the seventh row of FIG. 2 shows the local method of using the Git shallow bundle in the embodiment of the present disclosure. A schematic diagram of obtaining a version including commit 2 and commit 1, as can be seen from the schematic diagrams in the sixth and seventh lines, the file information and/or file information of the specified version can be directly obtained through the Git shallow bundle method in the embodiment of the present disclosure. Or version information, there is no need to backtrack one by one from the latest commit information of the branch, which can greatly reduce unnecessary backtracking and reduce the waste of resources. At the same time, the version of the specified commit information (commit 2 and/or commit 1) can be used locally. There are versions of the historical commit information for the specified commit information (commit 2 and/or commit 1) in the local repository.
在一种可选的实施方式中,如图3所示,对指定版本的文件信息和版本信息中的至少一项进行归档,包括以下步骤S301-S303:In an optional implementation manner, as shown in FIG. 3 , archiving at least one of the file information and version information of a specified version includes the following steps S301-S303:
S301,在指定版本的文件信息形成的第一待归档文件中添加第二类型的初始信息。S301 , adding initial information of the second type to the first file to be archived formed by the file information of the specified version.
第二类型的初始信息包括对文件信息和版本信息进行归档的格式信息,例如bundle格式的信息。The second type of initial information includes format information for archiving file information and version information, such as information in bundle format.
在一个示例中,第一待归档文件可以是.pack文件,该文件中包含指定版本的文件信息,第二类型的初始信息可以是bundle格式的信息,可在.pack文件的文件头中引入bundle格式的信息。In an example, the first file to be archived may be a .pack file, which contains file information of a specified version, and the second type of initial information may be information in a bundle format, and bundles may be introduced in the file header of the .pack file format information.
S302,在指定版本具有指定提交信息的情况下,在支持Git的浅克隆协议的第二待归档文件中添加指定版本的指定提交信息。S302, if the specified version has the specified commit information, add the specified commit information of the specified version to the second to-be-archived file supporting the shallow clone protocol of Git.
在一个示例中,第二待归档文件可以是.git/shallow文件,即远端Git仓库中.git目录下名为shallow的文件,该文件支持Git的浅克隆协议,例如SHA1(Secure HashAlgorithm 1,安全散列算法1)哈希值、MD5(Message-Digest Algorithm 5,信息摘要算法5)哈希值等,还可以是其它类型的密钥信息,本公开实施例不再一一列举。In one example, the second file to be archived may be a .git/shallow file, that is, a file named shallow in the .git directory of the remote Git repository, and the file supports the shallow clone protocol of Git, such as SHA1 (Secure
在一个示例中,可将SHA1哈希值(作为指定提交信息)写入.git/shallow文件,使得本地还原出来的Git仓库能够在只具有一个或多个指定提交信息的情况下,可以允许本地版本库的根节点没有父提交。In one example, the SHA1 hash value (as the specified commit information) can be written into the .git/shallow file, so that the locally restored Git repository can allow the local repo with only one or more specified commit information. The root node of the repository has no parent commit.
S303,对添加信息后的第一待归档文件和第二待归档文件进行归档。S303: Archive the first to-be-archived file and the second to-be-archived file after the information is added.
可选的,上述步骤S301-S303可由归档任务处理服务来实现,归档任务处理服务可通过上述步骤S301-S303进行归档,将得到的归档包发送至下一服务,例如归档存储和分发服务。Optionally, the above steps S301-S303 can be implemented by an archiving task processing service, which can perform archiving through the above steps S301-S303, and send the obtained archive package to the next service, such as an archive storage and distribution service.
通过上述方式进行归档后得到的归档包,能够通过网络传输、存储介质传输等文件传输方式传递到接收方,由接收方在本地自行还原为包含指定提交信息(该指定提交信息可由用户所需的任意多个提交信息所构成的信息构成)的本地浅克隆版本文件。The archive package obtained after archiving in the above way can be delivered to the recipient through file transmission methods such as network transmission, storage medium transmission, etc., and the recipient can restore it locally to contain the specified submission information (the specified submission information can be specified by the user. A local shallow clone version file of any number of commit messages.
在一种可选的实施方式中,本公开实施例提供的信息处理方法还包括:In an optional implementation manner, the information processing method provided by the embodiment of the present disclosure further includes:
响应于客户端发送的归档包访问请求,根据归档包访问请求所请求访问的归档包在第三方存储系统中的存储地址,生成归档包访问地址;向客户端反馈归档包访问地址。In response to the archive package access request sent by the client, the archive package access address is generated according to the storage address of the archive package requested by the archive package access request in the third-party storage system; the archive package access address is fed back to the client.
可选的,客户端发送的归档包访问请求携带有指定提交信息,该指定提交信息指定了的一个或多个版本,该一个或多个版本的归档包即为归档包访问请求所请求访问的归档包。Optionally, the archive package access request sent by the client carries specified submission information, one or more versions specified by the specified submission information, and the one or more versions of the archive package are the ones requested by the archive package access request. Archive the package.
上述基于客户端的归档包访问请求生成并反馈归档包访问地址的方式可由归档存储和分发服务实现,归档存储和分发服务通过上述方式生成归档包访问地址后,将归档包访问地址反馈给客户端,客户端可通过该归档包访问地址从第三方存储系统中下载对应的归档包。第三方存储系统可通过CDN向客户端发送相应的归档包,以提升用户读取归档包的速度和成功率。The above method of generating and feeding back the access address of the archive package based on the client-based access request for the archive package can be implemented by the archive storage and distribution service. After the archive storage and distribution service generates the access address of the archive package in the above manner, the archive package access address is fed back to the client. The client can download the corresponding archive package from the third-party storage system through the archive package access address. The third-party storage system can send the corresponding archive package to the client through the CDN, so as to improve the speed and success rate of the user reading the archive package.
本公开实施例中的归档包访问地址可以是临时性的访问地址或永久性的访问地址,当归档包访问地址是临时性的访问地址时,该访问地址的有效期可根据实际需求设置。The archive package access address in the embodiment of the present disclosure may be a temporary access address or a permanent access address. When the archive package access address is a temporary access address, the validity period of the access address may be set according to actual requirements.
基于上述方式,用户可通过归档包访问地址获取第三方存储系统中存储的归档包,得到相应版本的文件信息和/或版本信息,而无需依赖远端版本库进行读写操作以获取版本的文件信息和/或版本信息,可降低远端版本库的读写压力,提高读写性能和效率。Based on the above method, the user can obtain the archive package stored in the third-party storage system through the archive package access address, and obtain the file information and/or version information of the corresponding version, without relying on the remote version repository for read and write operations to obtain the version of the file. information and/or version information, which can reduce the read and write pressure on the remote repository and improve the read and write performance and efficiency.
在一种可选的实施方式中,在响应于客户端发送的归档包访问请求生成归档访问地址的过程中,具体包括:In an optional implementation manner, the process of generating the archive access address in response to the archive package access request sent by the client specifically includes:
对归档包访问请求进行权限认证;在对归档包访问请求的权限认证通过的情况下,向客户端发送归档包访问请求所请求访问的归档包在第三方存储系统中的存储地址,生成归档包访问地址。Perform permission authentication on the archive package access request; if the permission authentication for the archive package access request is passed, send the storage address of the archive package requested by the archive package access request to the client in the third-party storage system, and generate the archive package address.
对归档包访问请求进行权限认证的操作可通过认证和审计服务来实现,也可通过其它服务来实现,可根据实际情况设置相应的服务,本公开的实施例对此不作限定。The operation of performing authority authentication on the archive package access request can be implemented through authentication and audit services, or through other services, and corresponding services can be set according to actual conditions, which are not limited in the embodiments of the present disclosure.
可选的,客户端发送的归档包访问请求携带有用户信息,该用户信息可用于实现对归档包访问请求的权限认证。Optionally, the archive package access request sent by the client carries user information, and the user information can be used to implement authority authentication for the archive package access request.
在一个示例中,归档存储和分发服务在接收到客户端发送的归档包访问请求后将该归档包访问请求发送至认证和审计服务,认证和审计服务认证该归档包访问请求所携带的用户信息是否具有访问第三方存储系统中归档包的权限、以及该权限是否与访问远端版本库中版本的权限一致,若认证该归档包访问请求所携带的用户信息具有访问第三方存储系统中归档包的权限且该权限与访问远端版本库中版本的权限一致,则对该归档包访问请求的权限认证通过,否则对该归档包访问请求的权限认证不通过。In one example, after receiving the archive package access request sent by the client, the archive storage and distribution service sends the archive package access request to the authentication and audit service, and the authentication and audit service authenticates the user information carried in the archive package access request Whether it has the permission to access the archive package in the third-party storage system, and whether the permission is consistent with the permission to access the version in the remote repository, if it is authenticated that the user information carried in the access request for the archive package has access to the archive package in the third-party storage system If the permission is the same as the permission to access the version in the remote repository, the permission authentication of the access request to the archive package passes, otherwise the permission authentication for the access request to the archive package fails.
可选的,在对归档包访问请求的权限认证不通过的情况下,可向客户端反馈认证失败的信息。在一个示例中,在对归档包访问请求的权限认证不通过的情况下,认证和审计服务向归档存储和分发服务反馈认证失败的信息,归档存储和分发服务向客户端反馈该认证失败的信息。在一个示例中,每次权限认证完成后,认证和审计服务可存储该次权限认证的记录,以备后续使用。Optionally, in the case that the authorization authentication for the archive package access request fails, the authentication failure information may be fed back to the client. In one example, in the case that the authorization authentication for the access request to the archive package fails, the authentication and audit service feeds back the authentication failure information to the archive storage and distribution service, and the archive storage and distribution service feeds back the authentication failure information to the client . In one example, after each authorization authentication is completed, the authentication and auditing service may store a record of this authorization authentication for subsequent use.
基于上述实施方式,本公开实施例的技术方案可对客户端的归档包访问请求进行权限控制,确保发送用户具有对第三方存储系统中归档包的访问权限,以提升访问的安全性;同时还可确保用户对第三方存储系统中归档包的访问权限与对远端版本库中版本的访问权限一致,以提升访问的有效性。Based on the above-mentioned implementation manner, the technical solutions of the embodiments of the present disclosure can perform authority control on the access request of the archive package of the client, so as to ensure that the sending user has the access authority to the archive package in the third-party storage system, so as to improve the security of the access; Make sure that the user's access rights to archived packages in the third-party storage system are the same as the access rights to the version in the remote repository to improve the effectiveness of access.
本公开实施例的认证和审计服务可旁路设置,将对归档包的读写与访问控制进行了解耦,能够在不改变原有访问控制设计架构的基础上,以低成本方式接入到各类Git托管服务中,具有极高的实用性与兼容性,即使认证和审计服务出现故障也不会影响用户的读请求,提升了用户读操作的稳定生。The authentication and auditing services in the embodiments of the present disclosure can be bypassed, decoupling the read/write and access control of the archive package, and can be accessed in a low-cost manner without changing the original access control design architecture. Among all kinds of Git hosting services, it has extremely high practicability and compatibility. Even if the authentication and audit services fail, it will not affect the user's read request, which improves the stability of the user's read operation.
在一种可选的实施方式中,对归档包访问请求进行权限认证,包括:In an optional implementation manner, performing authority authentication on the archive package access request, including:
通过多个权限认证通道中的任意一个有效的权限认证通道,对归档包访问请求进行权限认证。Authenticate the archive package access request through any valid authority authentication channel among the multiple authority authentication channels.
在一个示例中,认证和审计服务可设置在多个机房或网段,每个机房或网段中的认证和审计服务作为一个权限认证通道,当某个机房或网段的认证和审计服务出现故障(即该权限认证通道失效)时,可快速将权限认证的流量切换到其它未发生故障的机房或网段的认证和审计服务(即该权限认证通道有效)。In an example, authentication and auditing services can be set in multiple computer rooms or network segments, and the authentication and auditing services in each computer room or network segment serve as an authorization authentication channel. When the authentication and auditing services of a computer room or network segment appear In the event of a fault (that is, the authority authentication channel is invalid), the traffic of authority authentication can be quickly switched to the authentication and audit services of other non-faulty computer rooms or network segments (that is, the authority authentication channel is valid).
基于上述实施方式,多个权限认证通道的设置有助于容灾切换,在某个权限认证通道失效时,快速切换到其它有效的权限认证通道,可提高权限认证的稳定性,不会某个权限认证通道的失效中断权限认证,从而保障用户的正常读请求不受影响。Based on the above embodiments, the setting of multiple authority authentication channels is helpful for disaster recovery switching. When a certain authority authentication channel fails, it can quickly switch to other valid authority authentication channels, which can improve the stability of authority authentication, and prevent certain The failure of the authorization authentication channel interrupts authorization authentication, so as to ensure that the normal read requests of users are not affected.
图4示出通过各服务实现本公开提供的信息处理方法的示意图,下面参照图4对本公开提供的信息处理方法的一个示例进行介绍。FIG. 4 shows a schematic diagram of implementing the information processing method provided by the present disclosure through various services. An example of the information processing method provided by the present disclosure will be described below with reference to FIG. 4 .
参照图4所示的示例,本公开提供的信息处理方法可通过归档任务构建服务、归档任务处理服务、归档存储和分发服务、认证和审计服务等服务实现,具体涉及如下过程;Referring to the example shown in FIG. 4 , the information processing method provided by the present disclosure can be implemented by services such as archive task construction service, archive task processing service, archive storage and distribution service, authentication and audit service, etc., specifically involving the following processes;
本地客户端在软件版本的文件信息发生变更的情况下,客户端通过Git写操作将该变更发送至远端Git仓库。When the file information of the software version changes on the local client, the client sends the change to the remote Git repository through the Git write operation.
归档任务构建服务在确定客户端发送的归档指令所指定的版本或远端Git仓库发生变更的版本的情况下,获取指定版本(归档指令所指定的版本或远端Git仓库发生变更的版本)的基本信息,基于该基本信息创建归档任务,并将创建好的归档任务发送至归档任务处理服务。The archive task construction service obtains the specified version (the version specified by the archive command or the changed version of the remote Git warehouse) when the version specified by the archive command sent by the client or the version changed in the remote Git warehouse is determined. Basic information, create an archive task based on the basic information, and send the created archive task to the archive task processing service.
归档任务处理服务基于归档任务获取一个或多个指定版本的文件信息和版本信息中的至少一项信息,其中,对于基于第一类型的归档任务,可获取指定版本的文件信息,对于基于第二类型的归档任务,获取指定版本的文件信息和版本信息;对每个指定版本的文件信息和版本信息中的至少一项信息进行打包,生成对应的二进制文件,将该二进制文件作为归档包或将对该二进制文件进行压缩后得到的二进制压缩文件作为归档包,创建归档包上传任务,将归档包和归档包上传任务发送至归档存储和分发服务。The archiving task processing service obtains one or more specified versions of file information and at least one item of version information based on the archiving task, wherein, for the archiving task based on the first type, the file information of the specified version can be obtained, and for the file information based on the second type. type of archiving task, obtain the file information and version information of the specified version; package at least one item of the file information and version information of each specified version to generate a corresponding binary file, and use the binary file as an archive package or The binary compressed file obtained by compressing the binary file is used as an archive package, an archive package upload task is created, and the archive package and the archive package upload task are sent to the archive storage and distribution service.
归档存储和分发服务基于归档包上传任务将归档包写入第三方存储系统进行存储。The archive storage and distribution service writes archive packages to third-party storage systems for storage based on archive package upload tasks.
用户需要获取第三方存储系统中的归档包时,通过客户端发送归档包访问请求(Git读操作),归档存储和分发服务将该归档包访问请求发送至认证和审计服务,认证和审计服务对该归档包访问请求进行权限认证,向归档存储和分发服务反馈认证结果,归档存储和分发服务向客户端反馈认证结果;在权限认证通过的情况下,所反馈的认证结果包括归档包访问地址,在权限认证未通过的情况下,所反馈的认证结果可包括认证失败的原因、再次认证的建议等,图4中仅示出权限认证通过的情况下反馈归档包访问地址作为示例。When the user needs to obtain the archive package in the third-party storage system, the client sends an archive package access request (Git read operation), and the archive storage and distribution service sends the archive package access request to the authentication and audit service. The archive package access request is authenticated, the authentication result is fed back to the archive storage and distribution service, and the archive storage and distribution service is fed back to the client. In the case that the authority authentication fails, the fed back authentication result may include the reason for the authentication failure, the suggestion for re-authentication, etc. FIG. 4 only shows the feedback archive package access address as an example when the authority authentication is passed.
客户端通过归档包访问地址读取第三方存储系统中对应的归档包。The client reads the corresponding archive package in the third-party storage system through the archive package access address.
图4所示的上述过程可以与远端Git仓库异步处理,以减少上述过程对远端Git仓库读写性能的影响。The above process shown in FIG. 4 can be processed asynchronously with the remote Git repository, so as to reduce the impact of the above process on the read and write performance of the remote Git repository.
在图4中可以通过客户端扩展来实现客户端的读写请求,客户端扩展主要负责封装构建、下载、还原等请求操作,可降低用户学习和使用的成本。应用于Git托管服务的场景中时,客户端扩展为Git客户端扩展,Git客户端扩展主要是在用户执行Git克隆(clone)或拉取(fetch/pull)命令的时候,先根据命令提供的信息转换为获取归档包的请求(即归档包访问请求)访问归档存储和分发服务,完成权限认证并反馈归档包访问地址后,Git客户端扩展根据归档包访问地址去下载归档包;如果下载成功,就将归档包解压并还原成原生的本地Git仓库并检出(checkout)工作空间(workspace);如果下载失败,就自动转给原生Git客户端执行原生的Git克隆(clone)或拉取(fetch/pull)命令。该方式可使客户端的使用更加便捷和透明。In Figure 4, the client's read and write requests can be implemented through the client-side extension. The client-side extension is mainly responsible for encapsulating request operations such as construction, download, and restoration, which can reduce the cost of user learning and use. When applied to the scenario of Git hosting service, the client extension is the Git client extension. The Git client extension is mainly provided according to the command when the user executes the Git clone (clone) or pull (fetch/pull) command. The information is converted into a request for obtaining an archive package (that is, an archive package access request) to access the archive storage and distribution service. After completing the authorization authentication and feeding back the archive package access address, the Git client extension downloads the archive package according to the archive package access address; if the download is successful , decompress the archive and restore it to the native local Git repository and checkout the workspace; if the download fails, it will automatically transfer to the native Git client to perform native Git clone or pull ( fetch/pull) commands. This method can make the use of the client more convenient and transparent.
根据本公开的实施例,本公开还提供了一种信息处理装置,如图5所示,该装置包括:信息获取模块501、归档模块502和归档包存储模块503。According to an embodiment of the present disclosure, the present disclosure further provides an information processing apparatus. As shown in FIG. 5 , the apparatus includes: an
信息获取模块501,用于获取远端版本库中指定版本的文件信息和版本信息中的至少一项信息。The
归档模块502,用于对指定版本的文件信息和版本信息中的至少一项信息进行归档,得到指定版本的归档包;指定版本的归档包的类型为第一类型或第二类型,第一类型的归档包携带有指定版本的文件信息,第二类型的归档包携带有指定版本的文件信息和版本信息。The
归档包存储模块503,向第三方存储系统发送指定版本的归档包;第三方存储系统用于存储归档包。The archive
在一种可选的实施方式中,第二类型支持分布式版本控制系统的浅克隆协议。In an optional implementation, the second type supports a shallow clone protocol for distributed version control systems.
在一种可选的实施方式中,信息获取模块501具体用于:在远端版本库中存在版本发生变更的情况下,获取发生变更的版本的文件信息和版本信息中的至少一项信息,作为指定版本的文件信息和版本信息中的至少一项信息;或,响应于客户端发送的归档指令,获取归档指令所指定的远端版本库中的版本的文件信息和版本信息中的至少一项信息,作为指定版本的文件信息和版本信息中的至少一项信息。In an optional embodiment, the
在一种可选的实施方式中,归档模块502具体用于:在指定版本的文件信息形成的第一待归档文件中添加第二类型的初始信息;在指定版本具有指定提交信息的情况下,在支持浅克隆协议的第二待归档文件中添加指定版本的指定提交信息;对添加信息后的第一待归档文件和第二待归档文件进行归档;其中,第二类型的初始信息包括对文件信息和版本信息进行归档的格式信息。In an optional implementation manner, the
在一种可选的实施方式中,本公开实施例提供的信息处理装置还包括:地址生成模块和地址反馈模块。In an optional implementation manner, the information processing apparatus provided by the embodiment of the present disclosure further includes: an address generation module and an address feedback module.
地址生成模块,用于响应于客户端发送的归档包访问请求,根据归档包访问请求所请求访问的归档包在第三方存储系统中的存储地址,生成归档包访问地址。The address generation module is configured to, in response to the archive package access request sent by the client, generate the archive package access address according to the storage address of the archive package requested by the archive package access request in the third-party storage system.
地址反馈模块,用于向客户端反馈归档包访问地址。The address feedback module is used to feed back the archive package access address to the client.
在一种可选的实施方式中,如图6所示,地址生成模块包括:权限认证单元601和地址生成单元602。In an optional implementation manner, as shown in FIG. 6 , the address generation module includes: an
权限认证单元601,用于对归档包访问请求进行权限认证。The
地址生成单元602,用于在对归档包访问请求的权限认证通过的情况下,向客户端发送归档包访问请求所请求访问的归档包在第三方存储系统中的存储地址,生成归档包访问地址。The
在一种可选的实施方式中,权限认证单元601具体用于:通过多个权限认证通道中的任意一个有效的权限认证通道,对归档包访问请求进行权限认证。In an optional implementation manner, the
本公开实施例各装置中的各单元或模块的功能可以参见上述方法实施例中的对应描述,在此不再赘述。For the functions of the units or modules in the apparatuses in the embodiments of the present disclosure, reference may be made to the corresponding descriptions in the foregoing method embodiments, and details are not described herein again.
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。In the technical solution of the present disclosure, the acquisition, storage and application of the user's personal information involved are all in compliance with the provisions of relevant laws and regulations, and do not violate public order and good customs.
根据本公开的实施例,本公开还提供了一种电子设备、一种非瞬时计算机可读存储介质和一种计算机程序产品。According to embodiments of the present disclosure, the present disclosure also provides an electronic device, a non-transitory computer-readable storage medium, and a computer program product.
本公开实施例提供的电子设备,包括:至少一个处理器、以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例提供的任意一种信息处理方法。An electronic device provided by an embodiment of the present disclosure includes: at least one processor, and a memory connected in communication with the at least one processor; wherein, the memory stores an instruction that can be executed by the at least one processor, and the instruction is executed by the at least one processor , so that at least one processor can execute any information processing method provided by the embodiments of the present disclosure.
本公开实施例提供的非瞬时计算机可读存储介质,其上存储有计算机指令,该计算机指令用于使所述计算机执行本公开实施例提供的任意一种信息处理方法。The non-transitory computer-readable storage medium provided by the embodiments of the present disclosure stores computer instructions thereon, and the computer instructions are used to cause the computer to execute any one of the information processing methods provided by the embodiments of the present disclosure.
本公开实施例提供的计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现本公开实施例提供的任意一种信息处理方法。The computer program product provided by the embodiments of the present disclosure includes a computer program, which, when executed by a processor, implements any one of the information processing methods provided by the embodiments of the present disclosure.
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。FIG. 7 shows a schematic block diagram of an example
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。As shown in FIG. 7 , the
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。Various components in the
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如信息处理方法。例如,在一些实施例中,信息处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的信息处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行信息处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。Various implementations of the systems and techniques described herein above may be implemented in digital electronic circuitry, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips system (SOC), load programmable logic device (CPLD), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include being implemented in one or more computer programs executable and/or interpretable on a programmable system including at least one programmable processor that The processor, which may be a special purpose or general-purpose programmable processor, may receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device an output device.
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer or other programmable data processing apparatus, such that the program code, when executed by the processor or controller, performs the functions/functions specified in the flowcharts and/or block diagrams. Action is implemented. The program code may execute entirely on the machine, partly on the machine, partly on the machine and partly on a remote machine as a stand-alone software package or entirely on the remote machine or server.
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in connection with the instruction execution system, apparatus or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media may include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media would include one or more wire-based electrical connections, portable computer disks, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), fiber optics, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device (eg, a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user ); and a keyboard and pointing device (eg, a mouse or trackball) through which a user can provide input to the computer. Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (eg, visual feedback, auditory feedback, or tactile feedback); and can be in any form (including acoustic input, voice input, or tactile input) to receive input from the user.
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。The systems and techniques described herein may be implemented on a computing system that includes back-end components (eg, as a data server), or a computing system that includes middleware components (eg, an application server), or a computing system that includes front-end components (eg, a user computer having a graphical user interface or web browser through which a user may interact with implementations of the systems and techniques described herein), or including such backend components, middleware components, Or any combination of front-end components in a computing system. The components of the system may be interconnected by any form or medium of digital data communication (eg, a communication network). Examples of communication networks include: Local Area Networks (LANs), Wide Area Networks (WANs), and the Internet.
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。A computer system can include clients and servers. Clients and servers are generally remote from each other and usually interact through a communication network. The relationship of client and server arises by computer programs running on the respective computers and having a client-server relationship to each other. The server can be a cloud server, a distributed system server, or a server combined with blockchain.
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。It should be understood that steps may be reordered, added or deleted using the various forms of flow shown above. For example, the steps described in the present disclosure can be executed in parallel, sequentially, or in different orders. As long as the desired results of the technical solutions disclosed in the present disclosure can be achieved, there is no limitation herein.
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。The above-mentioned specific embodiments do not constitute a limitation on the protection scope of the present disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may occur depending on design requirements and other factors. Any modifications, equivalent replacements, and improvements made within the spirit and principles of the present disclosure should be included within the protection scope of the present disclosure.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111320671.2A CN114047943A (en) | 2021-11-09 | 2021-11-09 | Information processing method, apparatus, device, storage medium and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111320671.2A CN114047943A (en) | 2021-11-09 | 2021-11-09 | Information processing method, apparatus, device, storage medium and computer program product |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114047943A true CN114047943A (en) | 2022-02-15 |
Family
ID=80207714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111320671.2A Pending CN114047943A (en) | 2021-11-09 | 2021-11-09 | Information processing method, apparatus, device, storage medium and computer program product |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047943A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467280A (en) * | 2023-03-31 | 2023-07-21 | 西安电子科技大学 | A distributed version control method based on object storage and fine-grained access control |
CN116467280B (en) * | 2023-03-31 | 2025-07-01 | 西安电子科技大学 | Distributed version control method based on object storage and fine-grained access control |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133444A1 (en) * | 2002-09-20 | 2004-07-08 | Florence Defaix | Version control system for software development |
US20140279903A1 (en) * | 2013-03-15 | 2014-09-18 | Microsoft Corporation | Version control system using commit manifest database tables |
CN107894895A (en) * | 2017-11-06 | 2018-04-10 | 网易(杭州)网络有限公司 | Processing method, device, storage medium, processor and the server of code update |
CN111813742A (en) * | 2020-06-29 | 2020-10-23 | 北京百度网讯科技有限公司 | File management method, device, equipment and medium |
CN112947992A (en) * | 2021-03-31 | 2021-06-11 | 建信金融科技有限责任公司 | Method and device for managing code version |
-
2021
- 2021-11-09 CN CN202111320671.2A patent/CN114047943A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133444A1 (en) * | 2002-09-20 | 2004-07-08 | Florence Defaix | Version control system for software development |
US20140279903A1 (en) * | 2013-03-15 | 2014-09-18 | Microsoft Corporation | Version control system using commit manifest database tables |
CN107894895A (en) * | 2017-11-06 | 2018-04-10 | 网易(杭州)网络有限公司 | Processing method, device, storage medium, processor and the server of code update |
CN111813742A (en) * | 2020-06-29 | 2020-10-23 | 北京百度网讯科技有限公司 | File management method, device, equipment and medium |
CN112947992A (en) * | 2021-03-31 | 2021-06-11 | 建信金融科技有限责任公司 | Method and device for managing code version |
Non-Patent Citations (2)
Title |
---|
BLFBUAA: "三分钟教你学Git(十四) 之 线下传输仓库", pages 1 - 2, Retrieved from the Internet <URL:https://www.cnblogs.com/blfbuaa/p/6807317.html> * |
星语海蓝: "git项目版本管理", pages 7, Retrieved from the Internet <URL:https://www.cnblogs.com/cy568searchx/p/3897550.html> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467280A (en) * | 2023-03-31 | 2023-07-21 | 西安电子科技大学 | A distributed version control method based on object storage and fine-grained access control |
CN116467280B (en) * | 2023-03-31 | 2025-07-01 | 西安电子科技大学 | Distributed version control method based on object storage and fine-grained access control |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022126974A1 (en) | Kafka-based incremental data synchronization method and apparatus, device, and medium | |
US20190265982A1 (en) | System and method for managing system configuration data models | |
US9589153B2 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
CN103401934A (en) | Method and system for acquiring log data | |
US12050907B2 (en) | Providing external access to a processing platform | |
US20240386028A1 (en) | Systems and methods for data integration | |
WO2023093016A1 (en) | Cloud code development system, method, and apparatus, device, and storage medium | |
CN110781197A (en) | Hive offline synchronous verification method and device and electronic equipment | |
CN116701053B (en) | Method, device, equipment and medium for restoring data backup of production environment database | |
CN114866533A (en) | File uploading method and device and electronic equipment | |
CN111338834B (en) | Data storage method and device | |
US20130179400A1 (en) | Intelligent data publishing framework for common data updates in large scale networks of heterogeneous computer systems | |
TW201606530A (en) | Methods for accessing big data and systems using the same | |
CN113360825A (en) | WebUI automatic test method and device, electronic equipment and storage medium | |
CN114047943A (en) | Information processing method, apparatus, device, storage medium and computer program product | |
CN112148705A (en) | Data migration method and device | |
US20150186254A1 (en) | Testing of transaction tracking software | |
CN110288309B (en) | Data interaction method, device, system, computer equipment and storage medium | |
CN114385503A (en) | Interface testing method, device, equipment and storage medium | |
CN114936026A (en) | Method, system, storage medium and equipment for analyzing semi-structured data | |
CN115167769A (en) | Method, device and system for writing data | |
CN106990992A (en) | service configuration method, device, server and storage medium | |
CN112099841A (en) | Method and system for generating configuration file | |
CN111857538A (en) | Data processing method, device and storage medium | |
US20210286680A1 (en) | Method, electronic device and computer program product for storage management |
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 |