CN111459538B - 代码同步方法及装置 - Google Patents

代码同步方法及装置 Download PDF

Info

Publication number
CN111459538B
CN111459538B CN202010264451.1A CN202010264451A CN111459538B CN 111459538 B CN111459538 B CN 111459538B CN 202010264451 A CN202010264451 A CN 202010264451A CN 111459538 B CN111459538 B CN 111459538B
Authority
CN
China
Prior art keywords
target
unit
gitlab
code
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010264451.1A
Other languages
English (en)
Other versions
CN111459538A (zh
Inventor
桑京
谢蓓
李卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202010264451.1A priority Critical patent/CN111459538B/zh
Publication of CN111459538A publication Critical patent/CN111459538A/zh
Application granted granted Critical
Publication of CN111459538B publication Critical patent/CN111459538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种代码同步方法及装置,该方法包括:实时监控目标Gerrit单元的replication插件日志信息,若replication插件日志信息中存在有预设的代码工程失败关键字的代码同步日志信息,则获取该日志信息中的Gerrit项目信息,Gerrit项目信息包括:项目名称和工程命名空间名称;判断目标gitlab单元是否存在工程命名空间名称,若是,判断目标gitlab单元是否存在项目名称;若经判断得到目标gitlab单元不存在项目名称,在目标gitlab单元创建项目名称对应的Gerrit项目,完成代码同步日志信息对应的代码的同步,能够提高代码同步的效率和准确性,实现对代码质量的监控。

Description

代码同步方法及装置
技术领域
本申请涉及数据处理技术领域,尤其涉及一种代码同步方法及装置。
背景技术
Gerrit是一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,且具有wiki和issue跟踪功能,并在此基础上搭建起来的web服务。
现有的技术是基于Gerrit的replication插件完成同步,但前提是必须gitlab上已经存在此项目,也就是在Gerrit上存在大量项目时,需要手工到gitlab上创建命名空间完全相同的空项目,Gerrit才能通过gitlab插件进行代码同步;在Gerrit系统中安装replication插件,配置好Gerrit到gitlab的免密和指纹,然后开启replication插件。此时在gitlab中以管理员身份创建与Gerrit项目同名的用户组和项目名称,此时replication插件会将Gerrit上的该项目同步到gitlab工程上。
发明内容
针对现有技术中的问题,本申请提出了一种代码同步方法及装置,能够提高代码同步的效率和准确性,进而实现对代码质量的监控。
为了解决上述技术问题,本申请提供以下技术方案:
本申请提供一种代码同步方法,包括:
实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称;
判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称;
若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步。
进一步地,在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目之后,还包括:将所述Gerrit项目对应的代码信息输出显示。
进一步地,所述Gerrit项目信息还包括:工程命名空间的子名称;相对应的,在所述获取该代码同步日志信息中的Gerrit项目信息之后,还包括:若经判断得到在目标gitlab单元中存在所述工程命名空间名称,则判断所述目标gitlab单元中是否存在所述工程命名空间的子名称,若否,则在所述目标gitlab单元中创建该工程命名空间的子名称对应的子组。
进一步地,在所述获取该代码同步日志信息中的Gerrit项目信息之后,还包括:若经判断得到在目标gitlab单元中不存在所述工程命名空间名称,则在所述目标gitlab单元中创建该工程命名空间名称对应的用户组。
第二方面,本申请提供一种代码同步装置,包括:
监控模块,用于实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称;
判断模块,用于判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称;
同步模块,用于若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步。
进一步地,所述的代码同步装置,还包括:
显示模块,用于将所述Gerrit项目对应的代码信息输出显示。
进一步地,所述Gerrit项目信息还包括:工程命名空间的子名称;相对应的,所述代码同步装置,还包括:创建子组模块,用于若经判断得到在目标gitlab单元中存在所述工程命名空间名称,则判断所述目标gitlab单元中是否存在所述工程命名空间的子名称,若否,则在所述目标gitlab单元中创建该工程命名空间的子名称对应的子组。
进一步地,所述的代码同步装置还包括:创建用户组模块,用于若经判断得到在目标gitlab单元中不存在所述工程命名空间名称,则在所述目标gitlab单元中创建该工程命名空间名称对应的用户组。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的代码同步方法。
第四方面,本申请一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的代码同步方法。
由上述技术方案可知,本申请提供一种代码同步方法及装置。其中,该方法包括:实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称;判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称;若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步,能够提高代码同步的效率和准确性,进而实现对代码质量的监控;具体地,能够实现在gitlab单元中自动化创建Gerrit项目,实时监控Gerrit单元中项目的更新,提高代码同步的准确性和效率,进而提高代码的质量;同时还能够提高一种金融交易软件的代码同步的准确性和效率,提高金融交易软件的可靠性,进而保证交易过程的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中代码同步方法的流程示意图;
图2是本申请另一实施例中代码同步方法的流程示意图;
图3是本申请实施例中代码同步装置的结构示意图;
图4是本申请另一实施例中代码同步装置的结构示意图;
图5为本申请实施例的电子设备9600的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,人工在gitlab单元中创建项目的过程,效率比较低且准确性较差,本申请考虑从改变现有的代码同步方式入手,通过gitlab单元创建项目、查询项目、创建组和查询组等API实现服务运行后,gitlab单元自动识别Gerrit单元中的所有项目,并完成相关命名空间的创建,自动同步所有Gerrit项目;实现对Gerrit项目变化的实时监控,gitlab单元中已存在的项目更新和项目创建,均能够高效地完整同步到gitlab单元中。
基于此,为了提高代码同步的效率和准确性,进而实现对代码质量的监控,本申请实施例提供一种代码同步装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行代码同步的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例进行说明。
如图1所示,为了提高代码同步的效率和准确性,进而实现对代码质量的监控,本实施例提供一种执行主体是代码同步装置的代码同步方法,具体包含有如下内容:
步骤100:实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包含有:项目名称和工程命名空间名称。
具体地,所述预设的代码工程失败关键字可根据实际情况进行设置,例如,“Missing repository created”。
步骤200:判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称。
具体地,所述目标Gerrit单元和目标gitlab单元可以分别对应一独立服务器,也可以集成在同一服务器中。所述工程命名空间名称可以是所述工程命名空间的第一个名称。
步骤300:若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步。
具体地,可以从Gerrit单元获取最新代码进行本地开发,将开发完成后的代码提交到Gerrit评审分支,代码评审通过后,通过同步脚本将Gerrit代码同步到gitlab单元,用户可登录gitlab页面查看最新的代码详情。可通过页面直接查看版本树。
为了进一步说明本方案,本申请还提供一种金融交易软件的代码同步方法,包含有:
S100:实时监控目标Gerrit软件中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的目标金融交易软件的项目信息,其中,该目标金融交易软件的项目信息包含有:项目名称和工程命名空间名称。
S200:判断在目标gitlab软件中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称。
S300:若经判断得到所述目标gitlab软件中不存在所述项目名称,则在所述目标gitlab软件中创建所述目标金融交易软件的程序,以完成所述代码同步日志信息对应的代码的同步。
S400:按照预设的修正规则,对所述目标gitlab软件中的所述目标交易软件对应的代码进行修正。
具体地,所述预设的修正规则可根据实际情况进行设置,本申请对此不作限制;通过将目标交易软件的代码同步到目标gitlab软件中,并在目标gitlab软件中所述目标交易软件对应的代码进行修正,能够提高目标交易软件的可靠性,进而提高交易的安全性。所述目标gitlab软件和目标Gerrit软件可以在同一服务器中。
为了进一步提高代码的可视化程度,并对代码质量进行实时监控,在本申请一个实施例中,在步骤300之后还包含有:
步骤400:将所述Gerrit项目对应的代码信息输出显示。
具体地,所述代码信息包含有:所述Gerrit项目中的代码对应的报表数据和版本树等。Gerrit代码同步到gitlab单元后,能够实现代码的可视化,可以执行在线修改代码,在线提交代码、在线合并分支、在线对比分支、在线查看报表数据和在线查看版本树等操作,能够提高用户使用效率,实现对代码的备份,提高数据的安全性。
为了进一步提高代码同步的效率和准确性,在本申请一个实施例中,所述Gerrit项目信息还包含有:工程命名空间的子名称;相对应的,参见图2,在步骤100之后还包含有:
步骤210:若经判断得到在目标gitlab单元中存在所述工程命名空间名称,则判断所述目标gitlab单元中是否存在所述工程命名空间的子名称,若否,则在所述目标gitlab单元中创建该工程命名空间的子名称对应的子组。
为了进一步提高代码同步的效率和准确性,参见图2,在本申请一个实施例中,在步骤100之后,还包含有:
步骤220:若经判断得到在目标gitlab单元中不存在所述工程命名空间名称,则在所述目标gitlab单元中创建该工程命名空间名称对应的用户组。
从软件层面来说,为了提高代码同步的效率和准确性,进而实现对代码质量的监控,本申请提供一种用于实现所述代码同步方法中全部或部分内容的代码同步装置的实施例,参见图3,所述代码同步装置具体包含有如下内容:
监控模块10,用于实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包含有:项目名称和工程命名空间名称。
判断模块20,用于判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称。
同步模块30,用于若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步。
在本申请一个实施例中,所述代码同步装置还包含有:
显示模块,用于将所述Gerrit项目对应的代码信息输出显示。
在本申请一个实施例中,所述Gerrit项目信息还包含有:工程命名空间的子名称;相对应的,参见图4,所述代码同步装置还包含有:
创建子组模块40,用于若经判断得到在目标gitlab单元中存在所述工程命名空间名称,则判断所述目标gitlab单元中是否存在所述工程命名空间的子名称,若否,则在所述目标gitlab单元中创建该工程命名空间的子名称对应的子组。
参见图4,在本申请一个实施例中,所述的代码同步装置还包含有:
创建用户组模块50,用于若经判断得到在目标gitlab单元中不存在所述工程命名空间名称,则在所述目标gitlab单元中创建该工程命名空间名称对应的用户组。
本说明书提供的代码同步装置的实施例具体可以用于执行上述代码同步方法的实施例的处理流程,其功能在此不再赘述,可以参照上述代码同步方法实施例的详细描述。
为了进一步说明本方案,本申请还提供一种代码同步方法的具体应用实例,在本具体应用实例中,基于python3,通过gitlab库的引用,先监控Gerrit的replication插件日志,当监控到关键字“Missing repository created”时认为同步该代码工程失败,在gitlab上查询该工程命名空间第一个名称,如果不存在则创建用户组,存在的话检查该工程命名空间的子名称,如果不存在的话则创建子组。若在gitlab上查询到该工程命名空间第一个名称,则检查项目名称,如果不存在则创建该项目,存在则不做任何操作。具体描述如下:
S1:在python脚本中引用gitlab库。
具体地,所述python脚本还可以替换为shell脚本。
S2:在脚本中监控Gerrit_site/logs/replication_log日志文件。
S3:当监控日志输出有关键字“Missing repository created”时,认为同步该代码工程失败。
S4:在gitlab上查询该工程命名空间第一个名称。
S5:获得查询结果,如果不存在则创建用户组。
S6:如果存在的话检查该工程命名空间的子名称。
S7:如果不存在的话则创建子组。
S8:检查项目名称获得查询结果。
S9:如果不存在则创建该项目,存在则不做任何操作。
在本具体应用实例中,所述python脚本中的关键代码如表1所示。
表1
/>
/>
由上述描述可知,本申请提供的代码同步方法及装置,能够实现在gitlab单元中自动化创建Gerrit项目,实时监控Gerrit单元中项目的更新,提高代码同步的准确性和效率,进而提高代码的质量;同时还能够提高一种金融交易软件的代码同步的准确性和效率,提高金融交易软件的可靠性,进而保证交易过程的可靠性。
从硬件层面来说,为了提高代码同步的效率和准确性,进而实现对代码质量的监控,本申请提供一种用于实现所述代码同步方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述代码同步装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述代码同步方法的实施例及用于实现所述代码同步装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图5为本申请实施例的电子设备9600的系统构成的示意框图。如图5所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图5是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,代码同步功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称。
步骤200:判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称。
步骤300:若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步。
从上述描述可知,本申请的实施例提供的电子设备,能够提高代码同步的效率和准确性,进而实现对代码质量的监控。
在另一个实施方式中,代码同步装置可以与中央处理器9100分开配置,例如可以将代码同步装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现代码同步功能。
如图5所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图5中所示的所有部件;此外,电子设备9600还可以包括图5中没有示出的部件,可以参考现有技术。
如图5所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高代码同步的效率和准确性,进而实现对代码质量的监控。
本申请的实施例还提供能够实现上述实施例中的代码同步方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的代码同步方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称。
步骤200:判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称。
步骤300:若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以完成所述代码同步日志信息对应的代码的同步。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高代码同步的效率和准确性,进而实现对代码质量的监控。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (6)

1.一种代码同步方法,其特征在于,包括:
实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称;
判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称;
若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以在所述目标Gerrit单元和目标gitlab单元中完成所述代码同步日志信息对应的代码的同步;
在所述在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以在所述目标Gerrit单元和目标gitlab单元中完成所述代码同步日志信息对应的代码的同步之后还包括:按照预设的修正规则,对所述目标gitlab单元中的所述代码进行修正;
所述Gerrit项目信息还包括:工程命名空间的子名称;相对应的,在所述获取该代码同步日志信息中的Gerrit项目信息之后,还包括:
若经判断得到在目标gitlab单元中存在所述工程命名空间名称,则判断所述目标gitlab单元中是否存在所述工程命名空间的子名称,若否,则在所述目标gitlab单元中创建该工程命名空间的子名称对应的子组;
所述在所述目标Gerrit单元和目标gitlab单元中完成所述代码同步日志信息对应的代码的同步,包括:从所述目标Gerrit单元获取最新代码进行本地开发,将开发完成后的代码提交到Gerrit评审分支,代码评审通过后,通过同步脚本将所述代码同步到所述目标gitlab单元;
在所述获取该代码同步日志信息中的Gerrit项目信息之后,还包括:
将所述Gerrit项目对应的代码信息输出显示,所述代码信息包含有:所述Gerrit项目中的代码对应的报表数据和版本树,用以实现执行在线修改代码,在线提交代码、在线合并分支、在线对比分支、在线查看报表数据和在线查看版本树操作。
2.根据权利要求1所述的代码同步方法,其特征在于,在所述获取该代码同步日志信息中的Gerrit项目信息之后,还包括:
若经判断得到在目标gitlab单元中不存在所述工程命名空间名称,则在所述目标gitlab单元中创建该工程命名空间名称对应的用户组。
3.一种代码同步装置,其特征在于,包括:
监控模块,用于实时监控目标Gerrit单元中的replication插件日志信息,若该replication插件日志信息中存在包含有预设的代码工程失败关键字的代码同步日志信息,则获取该代码同步日志信息中的Gerrit项目信息,其中,该Gerrit项目信息包括:项目名称和工程命名空间名称;
判断模块,用于判断在目标gitlab单元中是否存在所述工程命名空间名称,若是,则判断该目标gitlab单元中是否存在所述项目名称;
同步模块,用于若经判断得到所述目标gitlab单元中不存在所述项目名称,则在所述目标gitlab单元中创建与该项目名称对应的Gerrit项目,以在所述目标Gerrit单元和目标gitlab单元中完成所述代码同步日志信息对应的代码的同步;
所述代码同步装置还用于按照预设的修正规则,对所述目标gitlab单元中的所述代码进行修正;
所述Gerrit项目信息还包括:工程命名空间的子名称;相对应的,所述代码同步装置,还包括:
创建子组模块,用于若经判断得到在目标gitlab单元中存在所述工程命名空间名称,则判断所述目标gitlab单元中是否存在所述工程命名空间的子名称,若否,则在所述目标gitlab单元中创建该工程命名空间的子名称对应的子组;
所述同步模块具体用于:从所述目标Gerrit单元获取最新代码进行本地开发,将开发完成后的代码提交到Gerrit评审分支,代码评审通过后,通过同步脚本将所述代码同步到所述目标gitlab单元;
显示模块,用于将所述Gerrit项目对应的代码信息输出显示,所述代码信息包含有:所述Gerrit项目中的代码对应的报表数据和版本树,用以实现执行在线修改代码,在线提交代码、在线合并分支、在线对比分支、在线查看报表数据和在线查看版本树操作。
4.根据权利要求3所述的代码同步装置,其特征在于,还包括:
创建用户组模块,用于若经判断得到在目标gitlab单元中不存在所述工程命名空间名称,则在所述目标gitlab单元中创建该工程命名空间名称对应的用户组。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1或2所述的代码同步方法。
6.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1或2所述的代码同步方法。
CN202010264451.1A 2020-04-07 2020-04-07 代码同步方法及装置 Active CN111459538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010264451.1A CN111459538B (zh) 2020-04-07 2020-04-07 代码同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010264451.1A CN111459538B (zh) 2020-04-07 2020-04-07 代码同步方法及装置

Publications (2)

Publication Number Publication Date
CN111459538A CN111459538A (zh) 2020-07-28
CN111459538B true CN111459538B (zh) 2024-02-13

Family

ID=71681476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010264451.1A Active CN111459538B (zh) 2020-04-07 2020-04-07 代码同步方法及装置

Country Status (1)

Country Link
CN (1) CN111459538B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775714A (zh) * 2016-12-15 2017-05-31 武汉斗鱼网络科技有限公司 一种代码同步方法及系统
CN109558318A (zh) * 2018-11-23 2019-04-02 北京车和家信息技术有限公司 一种代码管理方法和代码仓库分布式系统
CN109634612A (zh) * 2018-12-04 2019-04-16 浙江数链科技有限公司 持续集成方法、系统、计算机设备和存储介质
CN110209385A (zh) * 2019-05-09 2019-09-06 无线生活(杭州)信息科技有限公司 项目创建方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775714A (zh) * 2016-12-15 2017-05-31 武汉斗鱼网络科技有限公司 一种代码同步方法及系统
CN109558318A (zh) * 2018-11-23 2019-04-02 北京车和家信息技术有限公司 一种代码管理方法和代码仓库分布式系统
CN109634612A (zh) * 2018-12-04 2019-04-16 浙江数链科技有限公司 持续集成方法、系统、计算机设备和存储介质
CN110209385A (zh) * 2019-05-09 2019-09-06 无线生活(杭州)信息科技有限公司 项目创建方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陶健.《基于git 托管平台的代码存储系统的设计与实现》.《中国优秀硕士学位论文全文数据库信息科技辑》.2019,(第5期),第18-33页. *

Also Published As

Publication number Publication date
CN111459538A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN110390525B (zh) 区块链世界状态的直接访问方法及区块链节点
CN111031058A (zh) 基于WebSocket的分布式服务器集群交互方法及装置
CN112163946A (zh) 基于分布式交易系统的账务处理方法及装置
CN111782470B (zh) 分布式容器日志数据处理方法及装置
CN112615753B (zh) 一种链路异常追踪方法、第一节点、第二节点以及链路
CN112784112B (zh) 报文校验方法及装置
CN113626002A (zh) 一种服务执行方法及装置
CN112597199A (zh) 异构多数据源适配方法及装置
CN112394932A (zh) 浏览器网页自动换肤方法及装置
CN114257532B (zh) 服务端状态探测方法及装置
CN113051094A (zh) 监管数据报送测试方法及装置
CN111459538B (zh) 代码同步方法及装置
CN111797099A (zh) 一种基于科目与辅助属性的数据处理方法及装置
CN111626802A (zh) 用于处理信息的方法和装置
CN113515447B (zh) 系统自动化测试方法及装置
CN112732660B (zh) 干预式文件传输方法、装置及系统
CN111859041B (zh) 数据报送方法及装置
CN112866268B (zh) 报文处理方法及系统
CN115082038A (zh) 系统集成方法、装置及电子设备
CN114840576A (zh) 数据标准匹配方法及装置
CN113158259A (zh) 区块链完整性验证方法及装置
CN113505076A (zh) 文件覆盖检测方法及装置
US20120066207A1 (en) Data combination system and data combination method
CN113434423A (zh) 接口测试方法及装置
CN111930841A (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
TA01 Transfer of patent application right

Effective date of registration: 20221010

Address after: 25 Financial Street, Xicheng District, Beijing 100033

Applicant after: CHINA CONSTRUCTION BANK Corp.

Address before: 25 Financial Street, Xicheng District, Beijing 100033

Applicant before: CHINA CONSTRUCTION BANK Corp.

Applicant before: Jianxin Financial Science and Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant