代码同步方法、装置、计算机可读介质及终端制造方法及图纸

技术编号:18349928 阅读:49 留言:0更新日期:2018-07-01 22:48
本发明专利技术公开了一种代码同步方法、装置、计算机可读介质及终端。其中,该代码同步方法包括:当检测到目标代码仓库中的代码发生变更时,通过预先建立好的镜像同步任务中的远程触发入口,接收基于事件处理接口web hook发送的远程触发消息;当接收到远程触发消息时,基于所述镜像同步任务中的镜像同步脚本,对所述目标代码仓库中的代码进行同步。本发明专利技术实施例的技术方案,通过在检测到目标代码仓库中的代码发生变更时,通过远程触发入口接收到的远程触发消息,来镜像同步任务实现代码同步,能够解决现有代码同步方法需要人工推送或实时性较差等技术问题,本技术方案无需人工干预即可高效且能实时进行镜像代码同步。

【技术实现步骤摘要】
代码同步方法、装置、计算机可读介质及终端
本专利技术实施例涉及计算机应用技术,尤其涉及一种代码同步方法、装置、计算机可读介质及终端。
技术介绍
在日常开发过程中,同一公司中往往会有A、B两个或两个以上的开发团队同时进行同一项目的开发,需要互相访问彼此的代码仓库。由于不在同一个网络环境中,互相访问彼此的代码仓库比较慢,尤其对于体量很大的代码仓库,非常耗时。因此通常做法是A团队在自己的服务器上做一个B团队维护的代码仓库的镜像,将代码仓库克隆到A团队内部服务器上。A团队开发人员只需要访问内部服务器即可快速获取该代码仓库的代码。这样提升了开发人员获取该代码的效率,同时也产生了一个问题,就是A团队从镜像代码仓库获取到的代码有可能不是B团队代码仓库的最新代码。目前,解决上述问题的方案一般有两种,一种是人工手动处理,B团队仓库的维护人员在进行了变更之后手动推送到A团队的镜像服务器上,此方案增加了B团队仓库维护人员的工作量,且此工作比较琐碎,容易遗漏,即此方案效率低且容易出错;另外一种方案,是在A团队的镜像服务器上设定定时同步任务,即,每隔一段时间A团队的镜像服务器就去自动同步B团队服务器上的代码,此方案无需人工介入,但由于不是实时同步,因此有可能A团队开发人员在访问镜像仓库时,B团队仓库已经更新。
技术实现思路
本专利技术实施例提供一种代码同步方法、装置、计算机可读介质及终端,以解决现有代码同步方法需要人工推送或实时性较差等技术问题,能够实现无需人工干预即可高效且能实时进行镜像代码同步的技术效果。第一方面,本专利技术实施例提供了一种代码同步方法,该方法包括:当检测到目标代码仓库中的代码发生变更时,通过预先建立好的镜像同步任务中的远程触发入口,接收基于事件处理接口webhook发送的远程触发消息;当接收到远程触发消息时,基于所述镜像同步任务中的镜像同步脚本,对所述目标代码仓库中的代码进行同步。进一步地,所述检测到目标代码仓库中的代码发生变更,包括:检测到目标代码仓库的目标触发事件,其中,所述目标触发事件包括提交事件、推送事件、打标签事件和/或合并请求事件。可选地,所述对所述目标代码仓库中的代码进行同步,包括:当检测到本地端不存在与所述目标代码仓库对应的镜像代码仓库时,将所述目标代码仓库镜像同步到所述本地端,生成与所述目标代码仓库对应的镜像代码仓库。可选地,所述对所述目标代码仓库中的代码进行同步,包括:当检测到本地端存在与所述目标代码仓库对应的镜像代码仓库时,根据所述目标代码仓库中的代码对所述镜像代码仓库中的代码进行镜像更新。进一步地,所述的代码同步方法还包括:将所述本地端的所述镜像代码仓库推送到代码托管服务器中。进一步地,所述的代码同步方法还包括:基于软件持续集成工具Jenkins构建镜像同步任务;对所述镜像同步任务中的远程触发入口进行配置,并在所述镜像同步任务中添加镜像同步脚本。可选地,所述对所述镜像同步任务中的远程触发入口进行配置,包括:在所述镜像同步任务中设置用于所述远程触发消息的统一资源定位符以及远程触发令牌。第二方面,本专利技术实施例还提供了一种代码同步装置,该装置包括:触发模块,用于当监听到目标代码仓库中的代码发生变更时,通过预先建立好的镜像同步任务中的远程触发入口,接收基于事件处理接口webhook发送的远程触发消息;同步模块,用于当接收到远程触发消息时,基于所述镜像同步任务中的镜像同步脚本,对所述目标代码仓库进行代码同步。第三方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本专利技术任一实施例所述的代码同步方法。第四方面,本专利技术实施例又提供了一种终端,所述终端包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任一实施例所述的代码同步方法。本专利技术实施例的技术方案,通过在检测到目标代码仓库中的代码发生变更时,通过远程触发入口接收到的远程触发消息,能够基于事件处理接口webhook机制在检测到目标代码仓库的代码发生变更时,自动发送远程触发消息,无需人工干预,进而,在检测到远程触发消息时,通过镜像中的同步任务实现代码同步,能够解决现有代码同步方法实时性较差等技术问题,高效且能实时进行镜像代码同步。附图说明为了更加清楚地说明本专利技术示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本专利技术所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。图1是本专利技术实施例一所提供的一种代码同步方法的流程示意图;图2A是本专利技术实施例二所提供的一种代码同步方法的流程示意图;图2B是本实施例二提供的一种代码同步方法的实施实例的流程示意图;图3是本专利技术实施例三所提供的一种代码同步装置的结构示意图;图4是本专利技术实施例三所提供的一种终端的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在日常开发过程中,由于往往涉及两个或两个以上的开发者同时进行同一项目的开发,因此可以采用分布式开发的工具。在本专利技术实施例中,可以基于分布式版本控制系统git来实现。从一般开发者的角度来看,git能够从服务器上克隆包括代码和版本信息的完整的git仓库到单机上。开发者还可以在自己的机器上根据不同的开发目的,创建分支,修改代码,在单机上自己创建的分支上提交代码以及在单机上合并分支等操作,具有减少共服务器压力和数据量,速度快,操作灵活,以及任意两个开发者之间可以很容易的解决冲突的特点,可以有效、高速的处理从很小到非常大的项目版本管理。实施例一图1为本专利技术实施例一所提供的一种代码同步方法的流程示意图,本实施例可适用于两台及两台以上的服务器需要共享统一代码库中的代码的情况,该方法可以由代码同步装置来执行,可以通过软件和/或硬件的方式来实现。如图1所示,本实施例的方法具体包括:S110、当检测到目标代码仓库中的代码发生变更时,通过预先建立好的镜像同步任务中的远程触发入口,接收基于事件处理接口webhook发送的远程触发消息。具体地,检测到目标代码仓库中的代码发生变更可以包括:检测到目标代码仓库的目标触发事件,其中,所述目标触发事件包括提交事件、推送事件、打标签事件和/或合并请求事件。在本实施例中,可以基于Jenkins预先构建好的镜像同步任务。进而设置好镜像同步任务的远程触发入口,用于接收远程触发消息,并在镜像同步任务中添加镜像同步脚本,用于在接收到远程触发消息后实现代码同步。其中,webhook是跟随着git而兴起的技术,当将基于git服务的webhook推送到服务器的时候,服务器会发送一个特殊的请求到你指定的统一资源定位符url上,进而可以使用脚本语言来获取这个请求。可以理解的是,在执行本操作之前,需要在存储有目标代码仓库中的服务器或终端中设置事件处理接口webhook,用于在检测到目标代码仓库中的代码发生变更时,发送远程触发消息。其本文档来自技高网...
代码同步方法、装置、计算机可读介质及终端

【技术保护点】
1.一种代码同步方法,其特征在于,包括:当检测到目标代码仓库中的代码发生变更时,通过预先建立好的镜像同步任务中的远程触发入口,接收基于事件处理接口web hook发送的远程触发消息;当接收到远程触发消息时,基于所述镜像同步任务中的镜像同步脚本,对所述目标代码仓库中的代码进行同步。

【技术特征摘要】
1.一种代码同步方法,其特征在于,包括:当检测到目标代码仓库中的代码发生变更时,通过预先建立好的镜像同步任务中的远程触发入口,接收基于事件处理接口webhook发送的远程触发消息;当接收到远程触发消息时,基于所述镜像同步任务中的镜像同步脚本,对所述目标代码仓库中的代码进行同步。2.根据权利要求1所述的代码同步方法,其特征在于,所述检测到目标代码仓库中的代码发生变更,包括:检测到目标代码仓库的目标触发事件,其中,所述目标触发事件包括提交事件、推送事件、打标签事件和/或合并请求事件。3.根据权利要求1所述的代码同步方法,其特征在于,所述对所述目标代码仓库中的代码进行同步,包括:当检测到本地端不存在与所述目标代码仓库对应的镜像代码仓库时,将所述目标代码仓库镜像同步到所述本地端,生成与所述目标代码仓库对应的镜像代码仓库。4.根据权利要求1所述的代码同步方法,其特征在于,所述对所述目标代码仓库中的代码进行同步,包括:当检测到本地端存在与所述目标代码仓库对应的镜像代码仓库时,根据所述目标代码仓库中的代码对所述镜像代码仓库中的代码进行镜像更新。5.根据权利要求3或4所述的代码同步方法,其特征在于,还包括:将所述本地端的所述镜像代码仓库...

【专利技术属性】
技术研发人员:黄露洋张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1