基于 shell 脚本的 gitsync 同步流程.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于 shell 脚本的 gitsync 同步流程

基于 Shell 脚本的 gitsync 同步流程 新老脚本功能对比: 老脚本,主要实现如下功能 (包含缺陷): 1、 基于单库同步,且没有判断是否需要做更新的动作,本地都会下载、推送代码,且 一次同步只能针对单一目的地; 2、 同步的版本库列表文件,需要用户提供,且表格中版本库和分支是否真实存在无法 做到准确地判断; 3、 服务端批量创建版本库时,只能创建没有包含任何分支的版本库。 总体来说,同步的动作会有比较高的本地和网络资源消耗,会额外增加服务器的负担。 此外,若用户无法准确地提供版本库列表,无形当中也存在做无用功的可能性。 因此,出于诸多考量,结合实际维护中所碰到的问题,结合了老脚本,追加输出,完善 了整个同步流程的脚本。 新脚本,提供以下功能: 1、 无需用户提供版本库列表,只要有 xml 文件,就可生成 repo [branch] 格式的, 且可用于后续脚本的统一列表文件。提供纯文本和 html 两种格式文件; 2、 根据列表文件,检查服务端版本库和分支是否存在; 3、 创建版本库的方式,提供了 git (支持裸、空版本库)和 gerrit 命令 (支持创建指 定分支)两种方式; 4、 同步方式,支持多版本库、多目的地,此外可判断是否需要更新,减少资源消耗; 5、 提供 gerrit 实时同步所需版本库权限设置的脚本,无需在 gerrit web UI 上做任 何操作,同步组、同步权限自动设置。 6、 提供服务端版本库分支备份、删除、还原操作 (基于 Hash)。 Wiki 知识库: 03/mediawiki/index.php/Git_repositories_sync_Scripts 03/mediawiki/index.php/Git_DevOps_scripts 脚本: ### 说明: 1、所有的 Shell 脚本,都表现为一个命令; 2、除了 gitsync、m2-gitsync,其它 Shell 规范的命令都支持参数,以不加参数的方 式运行,即可查看。例 repo_init 或 repo_init --help; 3、参数无先后顺序,命令不支持的参数,或者参数所需要的值未指定,脚本不会执行, 报错退出; 4、调用 gitsync、m2-gitsync 命令同步时,会直接按照脚本文件中设定好的 同步目 的地 和 分支 进行相关同步动作; 5、其余 Shell 规范的脚本,对涉及系统,会改变现有数据的动作,都需要用户确认 (输 入 yes)方可执行,否则脚本不会执行。 脚本链接:95:88/cobbler/repo_mirror/lnamp/repo_sync.tgz 同步效率测试: 同步分支:pixi335-v1.0-dint.conf 同步目的地:成都 版本库数量:308 个 首次同步:是 更新版本库:308 个 并发线程:5 个版本库 同步耗时:170 分钟 同步脚本,计算总耗时,使用 time 命令,或者查看具体的同步日志。 同步分支:pixi3-4.5-4g-v1.0-dint 同步目的地:南京 版本库数量:322 个 首次同步:否 更新版本库:1 个 并发线程:3 个版本库 同步耗时:6 分钟 其它测试中,基本更新量不大的,15 分钟内全部检查同步完成 (实际耗时,跟网络、 服务器负载有关) 脚本执行流程: - 可选:git pull 拉取 manifest.git 版本库;也可对单一的用户提供的 manifest xml 文 件做操作; - 必须:执行 repo_info,生成列表 repo [ branch ] 格式的 .

文档评论(0)

561190792 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档