MGit —— 百度开源基于 Git 的多仓库管理工具
MGit 是一款基于 Git 的多仓库管理工具,可以安全、高效地管理多个 Git 仓库,适合于在多个仓库中进行关联开发的项目,实现批量的版本管理功能,提高 Git 操作的效率,避免逐个执行 Git 命令带来的误操作风险。
主要特性
-
易用的命令:封装 Git 命令,命令和参数均由 Git 衍生而来,会使用 Git 就可以成本低上手 MGit。
-
直观高效的执行命令:提供图表化的结果展示,开发者可以快速查看命令在多个仓库的执行结果; 多线程并发执行多仓库命令,通过仓库缓存机制提高仓库的拉取效率。
-
安全的执行命令:在执行命令前对多仓库状态进行安全检查:分支是否异常,工作区是否未提交代码等; 对 .git 进行托管与 Git 工作区分类,避免误删丢失改动或提交; 执行存在风险的操作时,会给与风险操作提示,避免误操作。
-
方便扩展:支持加载 ruby-gem 包作为插件,gem 包名格式
m-git-${suffix}
和mgit-${suffix}
快速的扩展 MGit 的命令,增加自定义命令,扩展已有命令的功能; 提供类似git hook
的 hook 点,方便开发者实现自定义逻辑。
MGit 架构设计
架构图
核心概念:根据一张配置表操作多个仓库
指令的执行周期
-
指令解析:解析输入指令的类型,提取并分离指令的 git 原生参数和自定义参数。
-
执行指令:根据具体指令调用指令脚本,根据具体参数操作指定的仓库。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | BBBUG 音乐聊天室的开发故事和架构设计
办公室有个小伙伴喜欢拿音响放歌,然而总放一些动次打次的广场舞DJ曲目,同事听了都头大,每次让人家切歌又不方便 于是某同事吐槽:“我们点啥你放啥?” 一天之后…… “张三你刚说放啥来着?” “卧槽,我说的是刘德华的17岁,你这放的是谁的版本?” “17岁QQ音乐要会员,放不了。” …… 我实在看不下去了,要不写一个点歌平台? 说干就干,第一版俩小时搞定: 一个点歌端,爬虫爬各大平台,包括一些VIP歌曲也给爬下来,只能搜索,点歌。 一个导播端,可以看大伙点了什么歌,导播端可以插队播放,删除。 好,上线。 两天后…… 老板:“卧槽你们当办公室KTV呢?开音响听歌???” 好吧,所有人默默带上了耳机,但点歌端不能播放音乐,只能点歌,这一版宣告凉凉。 …… 那就升级吧: 这一版,不区分点歌端和导播端,所有端都一样,做一个共享队列,大伙点,大伙自己带耳机听。 一天后…… “你能不能让大家听到的歌进度保持一致?我还在听上一首,他们先进去的都已经自动播下一首了……” OK,继续升级,加歌曲同步。 好家伙这一次,跟KTV没啥区别了。 这一版有点意思,还加上了“送啤酒”这个小互动,是不是更像KTV了? 好...
- 下一篇
GNOME 41 将引入 libadwaita
根据 GNOME 开发者博客,预计今年秋季推出的 GNOME 41 将引入libadwaita,它是libhandy 的 GTK4 移植,有助于定义 GNOME 应用程序的视觉语言和用户体验。 在过去的 20 年里,GNOME 已经有了针对该平台的应用程序所遵循的人机界面指南 HIG。然而对于应用开发者来说,实现 HIG 是一项繁重的手工工作,导致了大量冗长的复制的 UI 代码,使得应用程序难以维护,并充满视觉和行为上的不一致。GTK 可以帮助缓解此问题,不过 GTK 服务于多个受众和平台,与 GNOME 的生命周期不匹配。Libadwaita 项目应运而生。 引入 libadwaita 项目的目的为了同时解决 GTK 的独立需求和 GNOME 的快速发展需求。Libadwaita 基于 libhandy 用户界面库,同时是 GTK4 的移植。Libadwaita 将运载 Adwaita 样式表及其变体。现有的 libhandy 开发者会参与 libadwaita 的开发工作,且这将是他们的工作重点,libhandy 本身的开发预计将大大放缓。 此外,libadwaita 项目将遵循 ...
相关文章
文章评论
共有0条评论来说两句吧...