CN110162334A - 一种代码管理方法、装置、存储介质及计算机程序产品 - Google Patents
一种代码管理方法、装置、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN110162334A CN110162334A CN201910456840.1A CN201910456840A CN110162334A CN 110162334 A CN110162334 A CN 110162334A CN 201910456840 A CN201910456840 A CN 201910456840A CN 110162334 A CN110162334 A CN 110162334A
- Authority
- CN
- China
- Prior art keywords
- code
- server
- label
- file
- updates
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种代码管理方法、装置、存储介质及计算机程序产品,所述方法包括:第一服务器监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;所述第一服务器若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;所述第一服务器根据所述第二更新文件,更新所述第一服务器的代码库。
Description
技术领域
本发明实施例涉及SCM代码配置管理技术领域,尤其涉及一种代码管理方法、装置、存储介质及计算机程序产品。
背景技术
软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。
在软件配置管理过程中,它的核心流程可以包括:(1)CCB设定研发活动的初始基线;(2)CMO根据软件配置管理规划设立配置库和工作空间,所有开发人员都会把工作成果存放到由软件配置管理工具所管理的配置库中去,或是直接工作在软件配置管理工具提供的环境之下,根据各开发阶段的实际情况来配置工作空间并定制相应的版本选取规则,来保证开发活动的正常运作。(3)开发人员按照统一的软件配置管理策略,根据获得的授权的资源进行项目的研发工作;(4)SIO按照项目的进度集成组内开发人员的工作成果,并构建系统,推进版本的演进;(5)CCB根据项目的进展情况,审核各种变更请求,并适时的划定新的基线。
现有软件配置管理方式的不足表现在:对配置的变化调整无法自动完成,自动化程度不够高;对大型集群系统,人工配置时间较长,甚至需要重启,造成业务中断,维护成本太大;系统高可用性太差,带来很差的用户体验。
发明内容
本发明实施例提供一种代码管理方法、装置、存储介质及计算机程序产品,能够实现代码的自动维护,降低维护成本,提高管理效率。
第一方面,本发明实施例提供了一种代码管理方法,包括:
第一服务器监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;
所述第一服务器若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;
所述第一服务器根据所述第二更新文件,更新所述第一服务器的代码库。
一种可能的实现方式,所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;
所述第一服务器若确定所述第二服务器的标签文件中的标签更新为第一标签,包括:
所述第一服务器若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
一种可能的实现方式,所述方法还包括:
所述第一服务器获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
所述第一服务器将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
一种可能的实现方式,所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并之前,还包括:
将所述第一更新文件中的代码与所述第一服务器中的代码库的代码进行比对;
若确定所述第一服务器中与所述第一更新文件中的代码的位置相同的代码与基线版本的代码不同,则向所述第二服务器发送冲突消息,并停止生成所述第二更新文件。
一种可能的实现方式,所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,包括:
将所述第一更新文件中的代码与所述第一服务器中的第一代码库的代码进行比对;
若确定所述第一更新文件中的代码相比所述第一服务器中的代码库的代码有增加和/或删除,则对应修改所述第一服务器中的代码库的代码后,生成所述第二更新文件。
本发明实施例提供一种代码管理装置,所述装置包括:
处理单元,用于监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;
收发单元,用于若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
所述处理单元,还用于在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;根据所述第二更新文件,更新所述第一服务器的代码库。
一种可能的实现方式,所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;
所述处理单元,用于:若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
一种可能的实现方式,所述收发单元,还用于获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
所述处理单元,还用于:将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
第三方面,本发明实施例还提供一种计算机设备,包括存储器、处理器以及显示器,其中,处理器可以用于读取存储器中存储的程序代码,执行如本发明实施例中任一项所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,包括指令,当其在计算机的处理器上运行时,使得计算机的处理器执行如本发明实施例中任一项所述的方法。
第五方面,本发明实施例提供一种计算机程序产品,当其在计算机的处理器上运行时,使得计算机的处理器执行如本发明实施例中任一项所述的方法。本发明实施例提供了一种代码管理方法、装置、存储介质及计算机程序产品,通过第一服务器监测第二服务器的标签文件;在确定所述第二服务器的标签文件中的标签更新为第一标签时,下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;根据所述第二更新文件,更新所述第一服务器的代码库。从而实现了自动将第二服务器更新的代码同步更新至第一服务器,不需要人工确认是否合入,提高了自动化进程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种代码管理方法的系统架构示意图;
图2为本发明实施例提供的代码管理方法的方法流程示意图;
图3为本发明实施例提供的代码管理方法的方法流程示意图;
图4为本发明实施例提供的代码管理装置的结构示意图;
图5为本发明实施例提供的第一服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了应用本发明实施例的一种代码管理方法的系统架构示意图。如图1所示,该系统架构可以包括至少两个服务器,本发明实施例图1中以第一服务器101和第二服务器102为例;第一服务器101和第二服务器102上存储有相同的代码库;且第一服务器101和第二服务器102上的代码库的基线需要保持相同。第一服务器101和第二服务器102上的代码库的同步可以在预设时间段内完成。本发明实施例中,第一服务器101或第二服务器102可以监控本地代码发生变化,也可以通过监控其他服务器上的标签文件,监控其他服务器的代码是否发送变化。需要说明的是,此处的本地可以为一个临时存储区,为保证第一服务器上存储的代码库中的代码不可轻易修改,可以设置临时存储区,作为第一服务器的管理员或代码编辑人员编辑第一服务器上的代码的存储区域。临时存储区域可以设置于第一服务器上,也可以设置于单独的服务器上,在此不做限定。第一服务器101和第二服务器102之间可通过无线或者有线的方式进行连接。该系统可以是分布式开源软件代码管理系统,例如SCM系统。
第一服务器101和第二服务器102可以是用于与终端设备进行通信的网络设备。第一服务器101和第二服务器102上均安装有同步装置,以实现代码的远程同步。第一次同步时,服务器会复制全部内容,但是在下一次只传输修改过的代码,同步装置在传输代码的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。第一服务器101和第二服务器102上均部署有实时监控脚本和同步脚本;实时监控脚本用于监控标签文件中的标签是否发生变化,进而确定第一服务器101和/或第二服务器102上的代码是否发生变化;为避免冲突,可以在第一服务器101和第二服务器102上可以分别设置标签文件,第一服务器101监控第二服务器102中的标签文件,第二服务器102监控第一服务器101中的标签文件。同步脚本用于对第一服务器101和第二服务器102上的代码进行同步。同步脚本可以为实时同步的脚本,也可以为预定时间同步的脚本,在此不做限定。
基于图1所示的系统架构,图2示例性示出了本发明实施例提供的代码管理方法的方法流程示意图,如图2所示,该代码管理方法包括以下步骤:
步骤201:第一服务器监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;
为提高监控的效率,减少第一服务器查找最近一次更新的标签,一种可能的实现方式,所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;所述第一服务器若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
当然,还可以通过时间戳的方式,以实现第一服务器查找最近一次更新的标签。
步骤202:第一服务器若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
步骤203:第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;
步骤204:第一服务器根据所述第二更新文件,更新所述第一服务器的代码库。
一种可能的实现方式,所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,包括:
将所述第一更新文件中的代码与所述第一服务器中的第一代码库的代码进行比对;
若确定所述第一更新文件中的代码相比所述第一服务器中的代码库的代码有增加和/或删除,则对应修改所述第一服务器中的代码库的代码后,生成所述第二更新文件。
本发明实施例提供了一种代码管理方法、装置、存储介质及计算机程序产品,通过第一服务器监测第二服务器的标签文件;在确定所述第二服务器的标签文件中的标签更新为第一标签时,下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;根据所述第二更新文件,更新所述第一服务器的代码库。从而实现了自动将第二服务器更新的代码同步更新至第一服务器,不需要人工确认是否合入,提高了自动化进程。
需要说明的是,第一服务器和第二服务器上部署的实时监控脚本实时监控第一服务器中的代码和第二服务器中的代码。在步骤201中,当第二服务器上的实时监控脚本监控到第二服务器中的代码发生变化时,第二服务器生成第一标签,并将第一标签保存在第二服务器的标签文件中。其中,第一标签包括第一代码版本。一种可能的实现方式,为提高安全性,第一标签中的第一代码版本可以是第二服务器对变化后的本地代码进行哈希运算生成的哈希值。也可以为其他形式,例如,json字符串,在此不做限定。
针对第一服务器监控第一服务器是否更新本地的代码,一种可能的实现方式,所述方法还包括:
步骤一、第一服务器获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
步骤二、第一服务器将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
为防止出现重复同步代码或者漏同步代码的问题,一种可能的实现方式,所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并之前,还包括:
将所述第一更新文件中的代码与所述第一服务器中的代码库的代码进行比对;
若确定所述第一服务器中与所述第一更新文件中的代码的位置相同的代码与基线版本的代码不同,则向所述第二服务器发送冲突消息,并停止生成所述第二更新文件。
需要说明的是,若确定所述第一服务器中与所述第一更新文件中的代码的位置相同的代码与基线版本的代码不同,此时,可以确定所述第一服务器与所述第二服务器针对相同位置的代码都有进行修改,则可以确定第一服务器和第二服务器出现了代码冲突的问题,需要向第一服务器和第二服务器的管理员发送冲突消息,以尽快发现冲突问题。
本发明实施例中,第一服务器接收到了第二服务器发送的第一标签,且第一服务器对本地变化后的代码生成了第三标签。
为防止出现重复同步代码或者漏同步代码的问题,本发明实施例中,一种可能的实现方式,第一标签还可以包括第一时间戳,第一时间戳用于指示第一服务器本地代码发生变化的时刻;第二时间戳用于指示第二服务器本地代码发生变化的时刻。
若第一服务器确定监测到的第二时间戳早于本地存储的第一时间戳,说明第二服务器在生成第二标签的过程中,第一服务器的本地代码发生了变化。对于此情况,本发明实施例中,第一服务器先对本地代码进行同步后生成第三标签并更新至第一服务器的标签文件中。
若第一服务器确定监测到的第二时间戳晚于本地存储的第一时间戳,说明第一服务器在检测到第二服务器的第二标签之前,本地代码没有发生变化。因此,第一服务器将第二服务器中的代码合入至第一服务器中的代码库。
若第一服务器确定检测到的第二时间戳与本地存储的第一时间戳一致,则确定接收到的第一标签中第一代码版本与本地存储的第二代码版本是否一致。若一致,则说明第一服务器中的代码和第二服务器中的代码相同,不需要进行同步;若不一致,则第一服务器将本地代码同步为第二服务器中的代码。
本发明实施例中,第一时间戳和第二时间戳可解决同一文件在较短的时间内不同服务器中发生不同代码的变化时文件的冲突问题,可使得第一服务器和第二服务器按照时间戳的先后顺序进行代码的同步。具体地,若第一服务器在确定接收到的第一时间戳早于本地存储的第二时间戳时,分别确定第一时间戳和第二时间戳对应的文件标识;若确定第一时间戳和第二时间戳对应的文件标识相同,则先将本地代码同步为第二服务器的代码,后将第三标签发送至第二服务器。
为了更清楚的介绍上述方法流程,图3示例性示出了本发明实施例提供的一种代码同步方法。该实施例中第一服务器和第二服务器可有WEB界面,可以实时了解服务器中代码的情况。分布式系统中包括至少两个服务器,每个服务器实时监控本地代码;任一服务器在监控到本地代码库发生变化时,生成第一标签;其中,第一标签可以包括第一代码版本和第一时间戳。本发明实施例中以第二服务器先监控到本地代码发生变化为例;在第二服务器监控到本地代码发生变化时,第二服务器生成第一标签,并将第一标签发送至第一服务器,以便于第一服务器根据第二服务器发送的第一标签确定是否更新本地代码。该方案可以实现不同服务器之间代码的同步。具体地代码同步过程见下述内容。该代码管理方法包括:
步骤301:第一服务器监测第二服务器的标签文件;
其中,所述标签文件中的标签用于标识所述第二服务器更新的代码版本;所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;
步骤302:所述第一服务器判断所述第二服务器的标签文件中的标签是否更新为第一标签,若是,则执行步骤303;否则,返回步骤301;
其中,所述第一服务器若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
步骤303:下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
步骤304:将所述第一更新文件中的代码与所述第一服务器中的代码库的代码进行比对;若未发现冲突问题,则执行步骤305,否则,执行步骤306;
其中,冲突问题可以为确定所述第一服务器中与所述第一更新文件中的代码的位置相同的代码与基线版本的代码不同;
步骤305:向所述第二服务器发送冲突消息,并停止生成所述第二更新文件。
步骤306:第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;
具体的,可以包括:将所述第一更新文件中的代码与所述第一服务器中的第一代码库的代码进行比对;若确定所述第一更新文件中的代码相比所述第一服务器中的代码库的代码有增加和/或删除,则对应修改所述第一服务器中的代码库的代码后,生成所述第二更新文件。
步骤307:第一服务器根据所述第二更新文件,更新所述第一服务器的代码库。
步骤308:第一服务器获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
步骤309:第一服务器将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
需要说明的是,步骤308-309,与步骤303的执行过程可以没有先后,步骤308-309可以在步骤303之前执行,也可以在步骤303之后执行,在此不做限定。
同样的,第二服务器可以监控第一服务器的标签文件;具体的代码管理过程可以参考第一服务器,在此不再赘述。
基于相同的技术构思,图4所示,本发明实施例提供一种代码管理装置,所述装置包括:
处理单元401,用于监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;
收发单元402,用于若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
处理单元401,还用于在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;根据所述第二更新文件,更新所述第一服务器的代码库。
一种可能的实现方式,所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;
处理单元401,用于:若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
一种可能的实现方式,收发单元402,还用于获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
处理单元401,还用于:将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
基于同一技术构思,本发明实施例还提供了一种第一服务器,用于执行第一服务器或第二服务器在本发明任一实施例中的方法,可以包括存储器1001和处理器1002。
所述存储器1001,用于存储处理器1002执行的计算机程序。存储器1001可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。处理器1002,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本发明实施例中不限定上述存储器1001和处理器1002之间的具体连接介质。本发明实施例在图5中以存储器1001和处理器1002之间通过总线1003连接,总线1003在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线1003可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1001可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1001也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1001是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1001可以是上述存储器的组合。
处理器1002,用于调用所述存储器1001中存储的计算机程序时执行本发明实施例提供的代码管理方法。
本发明实施例还提供了一种计算机存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发提供的代码管理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施提供的代码管理方法中的步骤,例如,所述计算机设备可以执行本发明实施例提供的代码管理方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式中提供的基于区块链的可消耗凭证方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种代码管理方法,其特征在于,所述方法包括:
第一服务器监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;
所述第一服务器若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;
所述第一服务器根据所述第二更新文件,更新所述第一服务器的代码库。
2.根据权利要求1所述的代码管理方法,其特征在于,所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;
所述第一服务器若确定所述第二服务器的标签文件中的标签更新为第一标签,包括:
所述第一服务器若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
3.根据权利要求2所述的代码管理方法,其特征在于,所述代码管理方法还包括:
所述第一服务器获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
所述第一服务器将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
4.根据权利要求3所述的代码管理方法,其特征在于,所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并之前,还包括:
将所述第一更新文件中的代码与所述第一服务器中的代码库的代码进行比对;
若确定所述第一服务器中与所述第一更新文件中的代码的位置相同的代码与基线版本的代码不同,则向所述第二服务器发送冲突消息,并停止生成所述第二更新文件。
5.根据权利要求1所述的代码管理方法,其特征在于,所述第一服务器在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,包括:
将所述第一更新文件中的代码与所述第一服务器中的第一代码库的代码进行比对;
若确定所述第一更新文件中的代码相比所述第一服务器中的代码库的代码有增加和/或删除,则对应修改所述第一服务器中的代码库的代码后,生成所述第二更新文件。
6.一种代码管理装置,其特征在于,所述装置包括:
处理单元,用于监测第二服务器的标签文件;所述标签文件中的标签用于标识所述第二服务器更新的代码版本;
收发单元,用于若确定所述第二服务器的标签文件中的标签更新为第一标签,则下载所述第一标签对应的第一更新文件至所述第一服务器的临时存储区;所述第一更新文件为所述第一标签对应的所述第二服务器更新的代码;
所述处理单元,还用于在所述临时存储区中将所述第一更新文件对应的代码与所述第一服务器的代码库的代码合并,生成第二更新文件;根据所述第二更新文件,更新所述第一服务器的代码库。
7.根据权利要求6所述的代码管理装置,其特征在于,所述标签文件中还包括指针;所述指针用于指向最近一次更新的代码对应的标签;
所述处理单元,用于:若确定所述指针发生变化,且所述指针指向的标签为所述第一标签。
8.根据权利要求7所述的代码管理装置,其特征在于,
所述收发单元,还用于获取临时存储区上传的第三更新文件,并存储对应的第三更新文件的第二标签;所述第三更新文件为所述第一服务器中需要更新的代码;
所述处理单元,还用于:将所述第二标签写入第一服务器的标签文件中,并将所述第一服务器的标签文件的指针指向所述第二标签。
9.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机的处理器上运行时,使得计算机的处理器执行如权利要求1至5任一项所述的代码管理方法。
10.一种计算机程序产品,其特征在于,当其在计算机的处理器上运行时,使得计算机的处理器执行如权利要求1至5任一项所述的代码管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910456840.1A CN110162334B (zh) | 2019-05-29 | 2019-05-29 | 一种代码管理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910456840.1A CN110162334B (zh) | 2019-05-29 | 2019-05-29 | 一种代码管理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162334A true CN110162334A (zh) | 2019-08-23 |
CN110162334B CN110162334B (zh) | 2023-07-14 |
Family
ID=67629698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910456840.1A Active CN110162334B (zh) | 2019-05-29 | 2019-05-29 | 一种代码管理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162334B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176983A (zh) * | 2019-10-18 | 2020-05-19 | 华为技术有限公司 | 一种代码冲突消解系统、方法、装置、设备及介质 |
CN111930411A (zh) * | 2020-09-30 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 代码升级方法、装置、计算机设备和存储介质 |
CN111984307A (zh) * | 2020-08-24 | 2020-11-24 | 北京思特奇信息技术股份有限公司 | 一个自动修复基线版本的处理方法及装置 |
CN112947988A (zh) * | 2021-03-10 | 2021-06-11 | 中国民航信息网络股份有限公司 | 大型机的持续集成方法及相关装置、计算机存储介质 |
CN113900680A (zh) * | 2020-07-06 | 2022-01-07 | 中国移动通信集团重庆有限公司 | 代码管理方法、装置及计算设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404519A (zh) * | 2015-12-07 | 2016-03-16 | 青岛海信电器股份有限公司 | 一种版本控制方法、代码测试方法及系统 |
US20170329767A1 (en) * | 2016-05-10 | 2017-11-16 | International Business Machines Corporation | Localization of application user interface |
CN107861750A (zh) * | 2017-11-07 | 2018-03-30 | 广东欧珀移动通信有限公司 | 一种标签管理方法、标签管理装置及智能终端 |
CN107894895A (zh) * | 2017-11-06 | 2018-04-10 | 网易(杭州)网络有限公司 | 代码更新的处理方法、装置、存储介质、处理器及服务器 |
CN109086071A (zh) * | 2018-08-22 | 2018-12-25 | 平安普惠企业管理有限公司 | 一种管理软件版本信息的方法及服务器 |
CN109117173A (zh) * | 2018-06-07 | 2019-01-01 | 丹露成都网络技术有限公司 | 一种基于项目版本开发的配置文件管理方法 |
-
2019
- 2019-05-29 CN CN201910456840.1A patent/CN110162334B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404519A (zh) * | 2015-12-07 | 2016-03-16 | 青岛海信电器股份有限公司 | 一种版本控制方法、代码测试方法及系统 |
US20170329767A1 (en) * | 2016-05-10 | 2017-11-16 | International Business Machines Corporation | Localization of application user interface |
CN107894895A (zh) * | 2017-11-06 | 2018-04-10 | 网易(杭州)网络有限公司 | 代码更新的处理方法、装置、存储介质、处理器及服务器 |
CN107861750A (zh) * | 2017-11-07 | 2018-03-30 | 广东欧珀移动通信有限公司 | 一种标签管理方法、标签管理装置及智能终端 |
CN109117173A (zh) * | 2018-06-07 | 2019-01-01 | 丹露成都网络技术有限公司 | 一种基于项目版本开发的配置文件管理方法 |
CN109086071A (zh) * | 2018-08-22 | 2018-12-25 | 平安普惠企业管理有限公司 | 一种管理软件版本信息的方法及服务器 |
Non-Patent Citations (3)
Title |
---|
E RITSCH ET AL.: "Modernising ATLAS Software Build Infrastructure", 《JOURNAL OF PHYSICS: CONFERENCE SERIES》 * |
张薇: "行为优化提升软件配置管理", 《计算机时代》 * |
张薇: "行为优化提升软件配置管理", 《计算机时代》, 31 December 2012 (2012-12-31), pages 67 - 69 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176983A (zh) * | 2019-10-18 | 2020-05-19 | 华为技术有限公司 | 一种代码冲突消解系统、方法、装置、设备及介质 |
US11960879B2 (en) | 2019-10-18 | 2024-04-16 | Huawei Cloud Computing Technologies Co., Ltd. | Code conflict resolution system and method, apparatus, device, and medium |
CN113900680A (zh) * | 2020-07-06 | 2022-01-07 | 中国移动通信集团重庆有限公司 | 代码管理方法、装置及计算设备 |
CN111984307A (zh) * | 2020-08-24 | 2020-11-24 | 北京思特奇信息技术股份有限公司 | 一个自动修复基线版本的处理方法及装置 |
CN111930411A (zh) * | 2020-09-30 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 代码升级方法、装置、计算机设备和存储介质 |
CN112947988A (zh) * | 2021-03-10 | 2021-06-11 | 中国民航信息网络股份有限公司 | 大型机的持续集成方法及相关装置、计算机存储介质 |
CN112947988B (zh) * | 2021-03-10 | 2024-03-08 | 中国民航信息网络股份有限公司 | 大型机的持续集成方法及相关装置、计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110162334B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162334A (zh) | 一种代码管理方法、装置、存储介质及计算机程序产品 | |
US11520808B2 (en) | System and method for synchronizing data between communication devices in a networked environment without a central server | |
CN106610854B (zh) | 一种模型更新方法及装置 | |
CN108964982B (zh) | 用于实现区块链的多节点的部署的方法、装置及存储介质 | |
CN107426309B (zh) | 一种信息同步方法、装置及系统 | |
CN111083722A (zh) | 模型的推送、模型的请求方法及装置、存储介质 | |
CN108337303A (zh) | 一种数据同步方法和分布式系统 | |
CN109831500A (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
CN106843976B (zh) | 用于生成镜像文件的方法和装置 | |
CN104508627A (zh) | 混合云环境 | |
CN109495532A (zh) | 客户端更新方法和装置 | |
CN105468393B (zh) | 模块版本升级方法及终端装置 | |
CN110839071B (zh) | 一种基于区块链的信息存储方法、设备及存储介质 | |
CN110348225A (zh) | 针对应用程序接口的安全漏洞确定方法和装置 | |
CN110532021A (zh) | 分布式控制系统的组态文件的处理方法及装置 | |
KR20150119554A (ko) | 어플리케이션 로그 데이터의 처리 장치 및 그 방법 | |
CN107071007A (zh) | 一种获取配置资源的方法、装置及客户端 | |
CN116450353A (zh) | 处理器核匹配方法、装置、电子设备及存储介质 | |
CN105117329A (zh) | 一种应用程序自动上线方法及系统 | |
CN112463312B (zh) | 一种定时任务的动态维护系统和方法、介质、计算设备 | |
CN110045969A (zh) | 应用程序安装方法、服务器、系统、设备及存储介质 | |
CN110347609B (zh) | 一种测试区块链软件的方法及装置 | |
CN110874316B (zh) | 扫描代码的方法、装置和系统 | |
CN115567596B (zh) | 云服务资源部署方法、装置、设备及存储介质 | |
CN110244968A (zh) | 充电站管理系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |