CN117834602A - 代码下载方法、装置、设备及存储介质 - Google Patents

代码下载方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117834602A
CN117834602A CN202410027593.4A CN202410027593A CN117834602A CN 117834602 A CN117834602 A CN 117834602A CN 202410027593 A CN202410027593 A CN 202410027593A CN 117834602 A CN117834602 A CN 117834602A
Authority
CN
China
Prior art keywords
code
downloading
download
error
warehouse
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
Application number
CN202410027593.4A
Other languages
English (en)
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.)
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Geely Holding Group Co Ltd, Zhejiang Zeekr Intelligent Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202410027593.4A priority Critical patent/CN117834602A/zh
Publication of CN117834602A publication Critical patent/CN117834602A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种代码下载方法、装置、设备及存储介质,该方法包括:响应于目标清理指令,对本地代码仓库内的预设代码进行清理;基于第一代码下载策略从远程代码仓库下载代码;将下载的代码下发至清理后的本地代码仓库;通过上述方式,在下载代码前,通过响应于目标清理指令将本地代码仓库内的预设代码进行清理,然后再利用第一代码下载策略从远程仓库下载代码,并将下载的代码进行下发,从而能够避免预设代码对本地代码仓库造成损坏,进而有效提高代码下载效率和准确率,以及保证代码下载的稳定性。

Description

代码下载方法、装置、设备及存储介质
技术领域
本发明涉及软件技术领域,尤其涉及代码下载方法、装置、设备及存储介质。
背景技术
在软件开发过程中离不开代码管理,尤其是进行CI/CD业务时大规模代码的下载,目前,用于下载代码管理的常用方式是增量下载,即保留当前目录已存在的代码不进行删除操作,直接执行下载步骤,仅需同步差异代码,但是在编译过程中遗留的代码会对代码仓库造成损坏,容易出现下载报错,造成整个代码下载的效率和准确率较低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种代码下载方法、装置、设备及存储介质,旨在解决现有技术下载代码的效率和准确率较低的技术问题。
为实现上述目的,本发明提供了一种代码下载方法,所述代码下载方法包括以下步骤:
响应于目标清理指令,对本地代码仓库内的预设代码进行清理;
基于第一代码下载策略从远程代码仓库下载代码;
将下载的代码下发至清理后的本地代码仓库。
可选地,所述基于第一代码下载策略从远程代码仓库下载代码,包括:
在目标代码下载过程中检测到下载报错信息时,确定所述下载报错信息所属的报错类型;
在所述报错类型为非顽固报错类型时,通过调用第一接口获取目标经验数据库;
根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略;
根据所述下载错误处理策略对下载报错信息对应的错误进行处理;
在未检测到同样的下载报错信息时,基于第一代码下载策略继续从远程代码仓库下载代码。
可选地,所述根据所述下载错误处理策略对下载报错信息对应的错误进行处理之后,还包括:
在检测到同样的下载报错信息时,对本地代码仓库内的代码进行清空;
基于第二代码下载策略从远程代码仓库下载全部代码;
将下载的全部代码下发至清理后的本地代码仓库。
可选地,所述确定所述下载报错信息所属的报错类型之后,还包括:
在所述报错类型为顽固报错类型时,返回执行对本地代码仓库内的代码进行清空的步骤。
可选地,所述根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略,包括:
根据所述报错信息确定代码下载错误标识信息;
通过正则规则将所述代码下载错误标识信息与所述目标经验数据库中的标识信息进行匹配;
在匹配成功时,确定下载错误处理策略;
在匹配失败时,返回执行对本地代码仓库内的代码进行清空的步骤。
可选地,所述基于第一代码下载策略从远程代码仓库下载代码之前,还包括:
在检测到不存在缓存目录时,确定位于同一域名下的第一服务器;
从所述第一服务器拷贝与所述缓存目录相同的预设缓存目录;
根据所述预设缓存目录获取第一缓存;
对目标目录进行初始化;
建立第一缓存与初始后的目标目录之间的链接,并继续执行基于第一代码下载策略从远程代码仓库下载代码的步骤。
可选地,所述将下载的代码下发至清理后的本地代码仓库之后,还包括:
在识别到需要新增本地代码仓库时,从第一服务器下载新增代码仓库;
获取所述新增代码仓库的第二缓存;
在第一服务器上制作目标公钥后,将目标公钥拷贝至各第二服务器;
通过第一服务器将所述第二缓存拷贝至各第二服务器;
在根据所述新增代码仓库对管理仓库的数据进行修改后,分别建立第二缓存与目标目录之间的链接;
通过各第二服务器基于第一代码下载策略从远程代码仓库下载代码。
此外,为实现上述目的,本发明还提出一种代码下载装置,所述代码下载装置包括:
清理模块,用于响应于目标清理指令,对本地代码仓库内的预设代码进行清理;
下载模块,用于基于第一代码下载策略从远程代码仓库下载代码;
下发模块,用于将下载的代码下发至清理后的本地代码仓库。
此外,为实现上述目的,本发明还提出一种代码下载设备,所述代码下载设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码下载程序,所述代码下载程序配置为实现如上文所述的代码下载方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有代码下载程序,所述代码下载程序被处理器执行时实现如上文所述的代码下载方法。
本发明提出的代码下载方法,通过响应于目标清理指令,对本地代码仓库内的预设代码进行清理;基于第一代码下载策略从远程代码仓库下载代码;将下载的代码下发至清理后的本地代码仓库;通过上述方式,在下载代码前,通过响应于目标清理指令将本地代码仓库内的预设代码进行清理,然后再利用第一代码下载策略从远程仓库下载代码,并将下载的代码进行下发,从而能够避免预设代码对本地代码仓库造成损坏,进而有效提高代码下载效率和准确率,以及保证代码下载的稳定性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的代码下载设备的结构示意图;
图2为本发明代码下载方法第一实施例的流程示意图;
图3为本发明代码下载方法一实施例的下载时间比较示意图;
图4为本发明代码下载方法第二实施例的流程示意图;
图5为本发明代码下载装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的代码下载设备结构示意图。
如图1所示,该代码下载设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对代码下载设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及代码下载程序。
在图1所示的代码下载设备中,网络接口1004主要用于与网络一体化平台工作站进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明代码下载设备中的处理器1001、存储器1005可以设置在代码下载设备中,所述代码下载设备通过处理器1001调用存储器1005中存储的代码下载程序,并执行本发明实施例提供的代码下载方法。
基于上述硬件结构,提出本发明代码下载方法实施例。
参照图2,图2为本发明代码下载方法第一实施例的流程示意图。
在第一实施例中,所述代码下载方法包括以下步骤:
步骤S10,响应于目标清理指令,对本地代码仓库内的预设代码进行清理。
需要说明的是,本实施例的执行主体为代码下载设备,还可为其他可实现相同或相似功能的设备,例如服务器等,本实施例对此不作限制,在本实施例中,以服务器等为例进行说明。
应当理解的是,目标清理指令指的是触发清理代码仓库内的代码的指令,该目标清理指令可以为:repo forall-c'git clean-fdx',预设代码可以为垃圾代码,如果未将遗留的预设代码清理完,则会在下载其他代码时出现下载报错的情况,因此,本实施例为避免上述情况的发生,在下载前,通过响应与于目标清理指令,对本地代码仓库内的预设代码进行清理,且清理方式可以为批量清理,即同时清理多个预设代码,另外,还可以执行目标还原指令,丢弃所有对仓库代码的修改将仓库代码还原,该目标还原指令可以为:repoforall-c'git reset--hard'。
需要说明的是,本实施例的应用场景可以为CI/CD业务,即持续集成/持续部署业务,在敏捷开发模式下,需要持续对代码提交进行集成和部署验证,验证通过的代码提交才允许合入主干,以保证软件质量,主要流程为每一次代码提交都触发一次CI/CD构建流水线任务,任务自动化下载主线代码,将本次提交的代码和主线代码拼装成需要验证的代码,进行编译、打包、测试、部署等一系列验证,最终反馈到代码提交页面上。
步骤S20,基于第一代码下载策略从远程代码仓库下载代码。
可以理解的是,第一代码下载策略可以为增量下载策略,远程代码仓库指的是远程存在代码的仓库,即通过目服务器将远程代码仓库中的代码下载至本地代码仓库。
进一步地,步骤S20之前,还包括:在检测到不存在缓存目录时,确定位于同一域名下的第一服务器;从所述第一服务器拷贝与所述缓存目录相同的预设缓存目录;根据所述预设缓存目录获取第一缓存;对目标目录进行初始化;建立第一缓存与初始后的目标目录之间的链接,并继续执行基于第一代码下载策略从远程代码仓库下载代码的步骤。
应当理解的是,第一缓存指的是加速从远程代码仓库下载代码的缓存,.repo/project-objects缓存,该第一缓存用于repo存储的各仓库代码提交记录,随着开发时间线拉长,海量的提交记录会极大增加占用的存储空间,且每次同步代码由于该记录文件不断增多,I/O读写和下载会越来越慢,但由于历史记录一旦生成就不会改变,故该记录无需每次都重新拉取,服务器的本地存储一份该第一缓存,下载代码前将该第一缓存软链接至目标目录,就能极大的加快下载速度,且随着提交记录越来越多,加速效果就越好,例如,参考图3,图3为下载时间比较示意图,以开发周期为一年进行说明,其中,左侧为不使用加速缓存进行代码下载的时间数据,右侧为使用第一缓存进行代码下载的时间数据,不使用第一缓存进行代码下载的总耗时为36.37s,而使用加速缓存进行代码下载的总耗时为14.37s,显然,使用第一缓存进行代码下载的速度更快,效率更高。
可以理解的是,在检测到存在缓存目录时,无需拷贝,此时直接打印日志提示信息,该提示信息可以为:本地已存在缓存目录,在检测到不存在缓存时,从第一服务器拷贝与缓存目录相同的预设缓存目录,该第一服务器与进行代码下载的服务器位于同一域名下,且会定时刷新加速缓存,该第一服务器也可以称为根服务器,第一缓存与初始后的目标目录之间的链接类型可以为软链接,利用第一代码下载策略从远程代码仓库下载代码,该目标目录可以为.repo目录,另外,用于检测是否存在缓存目录的指令可以为/home/share/project-objects,拷贝所用的指令可以为(scp).repo/project-objects,再初始化目标目录,并将第一缓存软链接至初始化后的目标目录,具体为:解析下载参数:repo_url、branch、manifest_xml,然后通过执行代码repo init-u{repo_url}-b{branch}-m{manifest_xml}初始化.repo目录,然后将.repo目录下的project-objects文件夹删除,并将/home/share/project-objects缓存软链接到目标目录。
步骤S30,将下载的代码下发至清理后的本地代码仓库。
应当理解的是,在下载好代码后,将下载的代码分发至清理预设代码后的本地代码仓库,以供本地终端的使用。
进一步地,步骤S30之后,还包括:在识别到需要新增本地代码仓库时,从第一服务器下载新增代码仓库;获取所述新增代码仓库的第二缓存;在第一服务器上制作目标公钥后,将目标公钥拷贝至各第二服务器;通过第一服务器将所述第二缓存拷贝至各第二服务器;在根据所述新增代码仓库对管理仓库的数据进行修改后,分别建立第二缓存与目标目录之间的链接;通过各第二服务器基于第一代码下载策略从远程代码仓库下载代码。
可以理解的是,在识别到需要新增本地代码仓库时,表明架构师或者代码仓库管理员根据实际场景判定需要增加本地代码仓库的数量,此时的实际场景可以为高并发场景,在第一服务器上制作并拷贝目标公钥至各服务器上后,通过第一服务器就可以免密操作各第二服务器,该第二服务器可以为需要下载代码的服务器,在制作目标公钥前,需要在第一服务器上安装ansible工具,另外,设置目标公钥的指令可以为ssh-keygen-t rsa-f~/.ssh/id_rsa-C"root@ssh_xxx.xxx.xxx.xxx"-P”。
应当理解的是,在获取到新增代码仓库的第二缓存后,为了有效提高拷贝第二缓存的效率,将该第二缓存进行压缩,例如,新增代码仓库为new_project,则第二缓存为project-objects/new_project.git,然后将第二缓存project-objects/new_project.git压缩为new_project.git.tar.gz,并将压缩后的第二缓存拷贝至各第二服务器,以达到一种预热的效果,然后通知仓库管理终端合并管理仓库的数据的修改,所需要的数据可以为xml配置数据,该管理仓库可以为manifest仓库,即正式增加代码仓库,此时各第二服务器基于第一代码下载策略从远程代码仓库下载代码由于已经存在第二缓存,即使时流量高峰也不会大量占用带宽,在软链接后下载本体所需的代码,无需下载历史记录,从而达到快速下载代码以及少占用资源的目的。
本实施例通过响应于目标清理指令,对本地代码仓库内的预设代码进行清理;基于第一代码下载策略从远程代码仓库下载代码;将下载的代码下发至清理后的本地代码仓库;通过上述方式,在下载代码前,通过响应于目标清理指令将本地代码仓库内的预设代码进行清理,然后再利用第一代码下载策略从远程仓库下载代码,并将下载的代码进行下发,从而能够避免预设代码对本地代码仓库造成损坏,进而有效提高代码下载效率和准确率,以及保证代码下载的稳定性。
在一实施例中,如图4所述,基于第一实施例提出本发明代码下载方法第二实施例,所述步骤S20,包括:
步骤S201,在目标代码下载过程中检测到下载报错信息时,确定所述下载报错信息所属的报错类型。
应当理解的是,下载报错信息指的是进行增量下载代码时的报错信息,该报错类型包括顽固报错类型和非顽固报错类型,其中,非顽固报错类型的错误可以通过调用目标经验库处理错误,顽固报错类型仅能通过清空代码的方式进行处理,在检测到下载报错信息时,表明代码下载失败,此时需要处理下载报错信息的错误,此时的处理方式分为两种,一种是处理该错误,继续基于第一代码下载策略以增量下载方式下载代码,另一种是清空代码,基于第二代码下载策略以全量下载方式下载代码。
进一步地,步骤S201之后,还包括:在所述报错类型为顽固报错类型时,返回执行对本地代码仓库内的代码进行清空的步骤。
可以理解的是,在确定下载报错信息所属的报错类型为顽固报错类型时,表明利用目标经验库确定的下载错误处理策略无法处理下载报错信息对应的错误,此时还是需要清空本地代码仓库内的代码,并采用第二代码下载策略全量下载代码。
步骤S202,在所述报错类型为非顽固报错类型时,通过调用第一接口获取目标经验数据库。
可以理解的是,在确定报错类型为非顽固报错类型时,表明可以通过目标经验库对下载报错信息对应的错误进行处理,第一接口指的是用于查询目标经验库的接口,目标经验数据库存储有标识信息与相对应的处理策略,该标识信息与处理策略通过创建的数据表呈现,例如,数据表A的标头有uuid、log_pattern、option,其中,uuid表示每条数据的唯一id,log_pattern表示标识信息及其正则匹配规则,option表示处理策略。
步骤S203,根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略。
应当理解的是,下载错误处理策略指的是用于处理下载报错信息对应的错误的策略,该下载错误处理策略可以根据下载报错信息和目标经验数据库综合确定。
需要说明的是,该目标经验库海水定期进行更新和维度,例如,定期查询数据表B,定期过滤status=unknown的记录,逐个确认是否为遗漏未能处理的下载失败,将相应处理策略补充至数据表A,另外同样过滤status=option error的记录,逐个确认是否存在处理操作有误,若是,则更新数据表A。
进一步地,步骤S203,包括:根据所述报错信息确定代码下载错误标识信息;通过正则规则将所述代码下载错误标识信息与所述目标经验数据库中的标识信息进行匹配;在匹配成功时,确定下载错误处理策略;在匹配失败时,返回执行对本地代码仓库内的代码进行清空的步骤。
可以理解的是,代码下载错误标识信息指的是与下载报错信息对应的日志标识信息,在得到代码下载错误标识信息后,会记录当前时间戳,然后利用当前时间戳将代码下载错误标识信息依次与目标经验数据库中的各标识信息进行匹配,然后将匹配成功的标识信息对应的处理策略作为下载错误处理策略,在匹配失败时,表明通过目标经验数据库无法处理下载报错信息对应的错误,此时调用第二接口上传当前下载报错日志标识、unknown(代表该错误没有处理策略)、时间戳以及空字符串,直接采用全量下载方式下载代码,具体是:将本地代码仓库内的代码清空,然后采用第二代码下载策略从远程代码仓库下载全部代码。
步骤S204,根据所述下载错误处理策略对下载报错信息对应的错误进行处理。
可以理解的是,在确定下载错误处理策略后,表明利用下载错误处理策略就可以处理下载报错信息对应的错误,此时直接对该错误进行处理。
进一步地,步骤S204之后,包括:在检测到同样的下载报错信息时,对本地代码仓库内的代码进行清空;基于第二代码下载策略从远程代码仓库下载全部代码;将下载的全部代码下发至清理后的本地代码仓库。
可以理解的是,第二代码下载策略指的是采用全量方式下载代码的策略,在检测到同样的下载报错信息时,表明采用下载错误处理策略未能完成对下载报错信息对应的错误的处理,此时需要清空本地代码仓库内的代码,在清理完成后,本地是没有任何代码的,然后利用第二代码下载策略全量下载代码,其中,用于清空的操作指令可以为:rm-rf{workspace}/*{workspace}/.repo。
步骤S205,在未检测到同样的下载报错信息时,基于第一代码下载策略继续从远程代码仓库下载代码。
应当理解的是,在未检测到同样的下载报错信息时,表明利用下载错误处理策略已完成对下载报错信息对应的错误的处理,此时可以继续完成从远程代码仓库下载代码,另外,目标经验库还存在另一张数据表,用于存储处理失败信息的,例如,数据表B的表头有fail_log、status、timestamp、pattern_id,其中,fail_log表示下载失败的标识信息、status表示处理结果、timestamp表示处理时间戳、pattern_id表示匹配成功的失败处理uuid,若通过下载错误处理策略处理失败,则调用第二接口将代码下载错误标识信息、当前处理结果、当前处理时间戳以及失败处理uuid进行上传。
本实施例通过在目标代码下载过程中检测到下载报错信息时,确定所述下载报错信息所属的报错类型;在所述报错类型为非顽固报错类型时,通过调用第一接口获取目标经验数据库;根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略;根据所述下载错误处理策略对下载报错信息对应的错误进行处理;在未检测到同样的下载报错信息时,基于第一代码下载策略继续从远程代码仓库下载代码;通过上述方式,在确定下载报错信息所属的报错类型为非顽固报错类型,利用目标经验数据库确定下载错误处理策略,然后利用该下载错误处理策略对下载报错信息对应的错误进行处理,从而能够有效提高处理错误的准确率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有代码下载程序,所述代码下载程序被处理器执行时实现如上文所述的代码下载方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,参照图5,本发明实施例还提出一种代码下载装置,所述代码下载装置包括:
清理模块10,用于响应于目标清理指令,对本地代码仓库内的预设代码进行清理。
下载模块20,用于基于第一代码下载策略从远程代码仓库下载代码。
下发模块30,用于将下载的代码下发至清理后的本地代码仓库。
本实施例通过响应于目标清理指令,对本地代码仓库内的预设代码进行清理;基于第一代码下载策略从远程代码仓库下载代码;将下载的代码下发至清理后的本地代码仓库;通过上述方式,在下载代码前,通过响应于目标清理指令将本地代码仓库内的预设代码进行清理,然后再利用第一代码下载策略从远程仓库下载代码,并将下载的代码进行下发,从而能够避免预设代码对本地代码仓库造成损坏,进而有效提高代码下载效率和准确率,以及保证代码下载的稳定性。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的代码下载方法,此处不再赘述。
在一实施例中,所述下载模块20,还用于在目标代码下载过程中检测到下载报错信息时,确定所述下载报错信息所属的报错类型;在所述报错类型为非顽固报错类型时,通过调用第一接口获取目标经验数据库;根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略;根据所述下载错误处理策略对下载报错信息对应的错误进行处理;在未检测到同样的下载报错信息时,基于第一代码下载策略继续从远程代码仓库下载代码。
在一实施例中,所述下载模块20,还用于在检测到同样的下载报错信息时,对本地代码仓库内的代码进行清空;基于第二代码下载策略从远程代码仓库下载全部代码;将下载的全部代码下发至清理后的本地代码仓库。
在一实施例中,所述下载模块20,还用于在所述报错类型为顽固报错类型时,返回执行对本地代码仓库内的代码进行清空的步骤。
在一实施例中,所述下载模块20,还用于根据所述报错信息确定代码下载错误标识信息;通过正则规则将所述代码下载错误标识信息与所述目标经验数据库中的标识信息进行匹配;在匹配成功时,确定下载错误处理策略;在匹配失败时,返回执行对本地代码仓库内的代码进行清空的步骤。
在一实施例中,所述下载模块20,还用于在检测到不存在缓存目录时,确定位于同一域名下的第一服务器;从所述第一服务器拷贝与所述缓存目录相同的预设缓存目录;根据所述预设缓存目录获取第一缓存;对目标目录进行初始化;建立第一缓存与初始后的目标目录之间的链接,并继续执行基于第一代码下载策略从远程代码仓库下载代码的步骤。
在一实施例中,所述下发模块30,还用于在识别到需要新增本地代码仓库时,从第一服务器下载新增代码仓库;获取所述新增代码仓库的第二缓存;在第一服务器上制作目标公钥后,将目标公钥拷贝至各第二服务器;通过第一服务器将所述第二缓存拷贝至各第二服务器;在根据所述新增代码仓库对管理仓库的数据进行修改后,分别建立第二缓存与目标目录之间的链接;通过各第二服务器基于第一代码下载策略从远程代码仓库下载代码。
本发明所述代码下载装置的其他实施例或具有实现方法可参照上述各方法实施例,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,一体化平台工作站,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种代码下载方法,其特征在于,包括以下步骤:
响应于目标清理指令,对本地代码仓库内的预设代码进行清理;
基于第一代码下载策略从远程代码仓库下载代码;
将下载的代码下发至清理后的本地代码仓库。
2.如权利要求1所述的代码下载方法,其特征在于,所述基于第一代码下载策略从远程代码仓库下载代码,包括:
在目标代码下载过程中检测到下载报错信息时,确定所述下载报错信息所属的报错类型;
在所述报错类型为非顽固报错类型时,通过调用第一接口获取目标经验数据库;
根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略;
根据所述下载错误处理策略对下载报错信息对应的错误进行处理;
在未检测到同样的下载报错信息时,基于第一代码下载策略继续从远程代码仓库下载代码。
3.如权利要求2所述的代码下载方法,其特征在于,所述根据所述下载错误处理策略对下载报错信息对应的错误进行处理之后,还包括:
在检测到同样的下载报错信息时,对本地代码仓库内的代码进行清空;
基于第二代码下载策略从远程代码仓库下载全部代码;
将下载的全部代码下发至清理后的本地代码仓库。
4.如权利要求2或3所述的代码下载方法,其特征在于,所述确定所述下载报错信息所属的报错类型之后,还包括:
在所述报错类型为顽固报错类型时,返回执行对本地代码仓库内的代码进行清空的步骤。
5.如权利要求2所述的代码下载方法,其特征在于,所述根据所述下载报错信息和所述目标经验数据库确定下载错误处理策略,包括:
根据所述报错信息确定代码下载错误标识信息;
通过正则规则将所述代码下载错误标识信息与所述目标经验数据库中的标识信息进行匹配;
在匹配成功时,确定下载错误处理策略;
在匹配失败时,返回执行对本地代码仓库内的代码进行清空的步骤。
6.如权利要求1所述的代码下载方法,其特征在于,所述基于第一代码下载策略从远程代码仓库下载代码之前,还包括:
在检测到不存在缓存目录时,确定位于同一域名下的第一服务器;
从所述第一服务器拷贝与所述缓存目录相同的预设缓存目录;
根据所述预设缓存目录获取第一缓存;
对目标目录进行初始化;
建立第一缓存与初始后的目标目录之间的链接,并继续执行基于第一代码下载策略从远程代码仓库下载代码的步骤。
7.如权利要求1所述的代码下载方法,其特征在于,所述将下载的代码下发至清理后的本地代码仓库之后,还包括:
在识别到需要新增本地代码仓库时,从第一服务器下载新增代码仓库;
获取所述新增代码仓库的第二缓存;
在第一服务器上制作目标公钥后,将目标公钥拷贝至各第二服务器;
通过第一服务器将所述第二缓存拷贝至各第二服务器;
在根据所述新增代码仓库对管理仓库的数据进行修改后,分别建立第二缓存与目标目录之间的链接;
通过各第二服务器基于第一代码下载策略从远程代码仓库下载代码。
8.一种代码下载装置,其特征在于,所述代码下载装置包括:
清理模块,用于响应于目标清理指令,对本地代码仓库内的预设代码进行清理;
下载模块,用于基于第一代码下载策略从远程代码仓库下载代码;
下发模块,用于将下载的代码下发至清理后的本地代码仓库。
9.一种代码下载设备,其特征在于,所述代码下载设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码下载程序,所述代码下载程序配置有实现如权利要求1至7中任一项所述的代码下载方法。
10.一种存储介质,其特征在于,所述存储介质上存储有代码下载程序,所述代码下载程序被处理器执行时实现如权利要求1至7中任一项所述的代码下载方法。
CN202410027593.4A 2024-01-08 2024-01-08 代码下载方法、装置、设备及存储介质 Pending CN117834602A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410027593.4A CN117834602A (zh) 2024-01-08 2024-01-08 代码下载方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410027593.4A CN117834602A (zh) 2024-01-08 2024-01-08 代码下载方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117834602A true CN117834602A (zh) 2024-04-05

Family

ID=90523997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410027593.4A Pending CN117834602A (zh) 2024-01-08 2024-01-08 代码下载方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117834602A (zh)

Similar Documents

Publication Publication Date Title
US20160306799A1 (en) Atomic incremental load for map-reduce systems on append-only file systems
CN1329840C (zh) 文件归档
US20110213754A1 (en) Opportunistic Asynchronous De-Duplication in Block Level Backups
CN110879813A (zh) 一种基于二进制日志解析的MySQL数据库增量同步实现方法
CN107688611B (zh) 一种基于saltstack的Redis键值管理系统及方法
US11132274B2 (en) Establishing and monitoring programming environments
US10318387B1 (en) Automated charge backup modelling
US20080098382A1 (en) Method and system for management of interim software fixes
CN109324821B (zh) 一种自助终端系统版本管理方法
CN101183979A (zh) 一种配置备份的方法和装置
CN110278222B (zh) 分布式文件存储系统中数据管理的方法、系统以及相关设备
CN112099880A (zh) 场景驱动的应用程序约减方法和系统
Kaplunovich et al. Scalability analysis of blockchain on a serverless cloud
CN113515303B (zh) 一种项目转型方法、装置和设备
CN108664255B (zh) 一种软件升级方法及装置
CN117834602A (zh) 代码下载方法、装置、设备及存储介质
CN114416163A (zh) 一种制品管理方法、系统、存储介质和电子设备
EP3853734A1 (en) Applying a log to storage segments
CN115454491A (zh) 一种版本部署方法和相关装置
CN111625397B (zh) 业务日志备份方法、集群、装置、电子设备及存储介质
CN114879977A (zh) 应用部署方法、装置及存储介质
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
US20020161789A1 (en) Parallel replication mechanism for state information produced by serialized processing
US11645333B1 (en) Garbage collection integrated with physical file verification
CN112579139B (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