首页 > 其他分享 >Chromium gclient使用

Chromium gclient使用

时间:2023-11-03 15:34:14浏览次数:30  
标签:文件 git 仓库 solution gclient DEPS 使用 Chromium

gclient 是由 Google 用 Python 开发的一套跨平台的git仓库管理工具,它的作用类似 git 的 submodule,用来将多个git仓库组成一个solution进行管理,比如chromium项目是由80多个独立的git仓库构成的。这样的好处是,一个git仓库可以被多个solution共用,类似CBB的机制,只不过它是直接引用代码仓库,而CBB是引用编译好的程序。

具体来讲,gclient 的核心功能是将solution中由DEPS文件定义的所有git仓库拉取到指定的目录。围绕着这个功能,它添加了一些其它的辅助功能,比如Hooksinclude_rules等功能。

 1. 关键概念

  • gclient: 一个跨平台的代码仓库管理工具,用于管理由多个代码仓库组成的项目;
  • repo: 作用同gclient,是gclient的前辈,gclient是更新的工具;
  • roll_deps: 一个gclient 的辅助工具,用于更新DEPS文件中某个项目的代码版本;
  • Gerrit/Rietveld: 一个Code Review系统,可以和git/svn集成;
  • Hooks: gclient中的术语,当gclient拉完代码之后执行的额外脚本;
  • Solution: 一个包含DEPS文件的仓库,DEPS文件中记录了该solution所有依赖的项目;
  • .gclient: 一个由 gclient config 命令创建出来的文件,内部记录了要拉取的solution;
  • DEPS: 一个文件,gclient 用于管理项目依赖的一个文件,记录了项目的依赖关系;
  • CL: Change List ,类似 git 的 diff 和 pack;
  • LKGR: Last Known Good Revision,一个git tag,记录了最新的经过完整测试的版本;
  • managed: gclient 的一种模式,该模式已过时,不推荐使用;该模式用于帮助那些对git不熟悉的开发者更简单的使用gclient;
  • inlcude_rules: 指定当前目录下哪些目录/文件可以被其他代码inlcude,那些不可以被inlcude;
  • specific_include_rules: 作用同include_rules,但是可以使用通配符;

2. gclient 命令解释

gclient config

该命令用来初始化要拉取的solution,它会在命令执行目录下生成 .gclient 文件; .gclient 文件中记录了要拉取的solution的仓库地址,以及拉取后要保存的位置,如下:

gclient sync

该命令用来同步solution。它有很多的参数可选:

 3. 其他

 

 4. 使用 gclient 的开发流程

 5. 参考资料

https://www.chromium.org/developers/how-tos/depottools/

https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

 

标签:文件,git,仓库,solution,gclient,DEPS,使用,Chromium
From: https://www.cnblogs.com/rmb999/p/17807648.html

相关文章

  • C++使用多线程将数据写入文件
    #include<iostream>#include<vector>#include<thread>#include<fstream>//使用多线程将数据写入文件voidwriteToFile(conststd::vector<std::string>&data,conststd::string&filename){//创建一个文件输出流std::ofstreamfile......
  • C++中string类基本使用的详细归纳
    目录:string类的初始化操作实例化得到一个string类对象之后的常用成员函数的操作2.1从外部键盘获取输入的方式(注意与C风格字符串做区别)2.2比较string对象2.3遍历每个字符2.4string类中的insert()增加成员函数2.5string类中的erase()删除成员函数2.6常用基本操作......
  • Qt 6.5.2 下 QGraphicsView 中使用触控手势的问题
    自定义的QGraphicsView中加入setScene后,其它Gesture能够触发,但QPanGesture不能在场景中触发。而空白QGraphicsView(QWidget)则可以正常触发PanGesture手势……源码和文档中都已经说明,gesture是给QGraphicsObject使用的……但我们就是想使用PanGesture手势来操作场景拖动……这可......
  • pt-online-schema-change的使用
    #!/bin/bashdatept-online-schema-change--alter"ADDINDEXidx_01(create_time)"D=database_name,t=table_name--charsetutf8mb4--nocheck-replication-filters--user=root--password='xxx'\--max-lag=30--execute ......
  • C++使用new来初始化指向类的指针
    C++使用new来初始化类的指针1.ClassName*p=newClassName;调用默认构造函数。如果类里没有写默认构造函数,会使用编译器帮我们生成的,但不会初始化成员变量,如classNoConstructor//没写构造函数的类{public:~NoConstructor(){}voidprintVal(){......
  • 带你了解 Stream 的使用,提升集合开发效率
    当涉及Java编程时,JavaStream是一个功能强大且高效的工具,用于处理集合数据。它提供了一种声明式的方式来操作数据,可以显著简化代码并提高可读性。在本文中,我们将深入探讨JavaStream,介绍其基本概念、常用操作和用例。什么是JavaStreamJavaStream是Java8引入的一种新的抽......
  • QT使用QML实现地图绘制虚线
    QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段,如图:鼠标在地图上点击后,在点击位置添加图标,当有多个图标被添加到地图上后,计算各个图标间的距离,并创建一个新的虚线线段组件,连接两个图标点,显示距离数值。如果对自定义图标......
  • 如何使用python 绘制圈圈大小相同的韦恩图
    百度之换数据,画之,就这么简单哦,如果要画大小一致的圈圈,只需要venn3.py里350代码改成如下即可:#areas=compute_venn3_areas(subsets,normalize_to)areas=compute_venn3_areas((1,1,1,1,1,1,1),normalize_to)importmatplotlib.pyplotaspltfrommatplotlib_vennimpor......
  • Kali基础工具使用(完善中)
    Kali是什么 Kali是一款集成了各种专业工具的渗透测试的基于Debian的Linux操作系统Kali中包含600多款工具软件,适用于各种信息安全和渗透测试研究 Kali的安装 参考:虚拟机VMware下载与安装教程(详细)_vmware虚拟机-CSDN博客【2022最新KaliLinux安装教程【附安装......
  • flask部署在腾讯云上,但在本地使用网页无法访问——问题解决
    flask部署在腾讯云上,但在本地使用网页无法访问——问题解决1.修改腾讯云防火墙,把对应的port开放:2.修改代码if__name__=='__main__':app.run(host="0.0.0.0",port=5000,debug=True)参考链接:https://zhuanlan.zhihu.com/p/611969276......