gclient来管理源码的checkout, update等。 gclient是google专门为这种多源项目编写的脚本,它可以将多个源码管理系统中的代码放在一起管理。甚至包括将Git和svn代码放在一起。
重点说明下和gclient密切相关的两类文件.gclient和DEPS。
.gclient文件是gclient的控制文件,该文件放在工作目录的最上层。是主文件, ".gclient"文件是一个Python的脚本
它指定以下变量
solutions:一组字典,用于指定要获取的项目
此文件在src目录的同级目录。
  • target_os:一个可选的(目标)操作系统数组,用于获取特定于操作系统的依赖项。
solutions数组中描述的每个项目都可以包含一个可选的DEPS文件。.gclient文件是gclient config <url>手动生成的。
solutions下面又有下面这些值:
  • name: the path of the checkout.
  • url: the remote repository to fetch/clone.
  • url : 源码所在的目录,gclient希望checkout出的源码中包括一个DEPS的文件,这个文件包含了必须checkout到工作目录的源码的信息;
  • deps_file 这是一个文件名(不包括路径),指在工程目录中包含依赖列表的文件,该项为可选,默认值为"DEPS"
  • custom_deps 这是一个可选的字典对象,会覆盖工程的"DEPS"文件定义的条目。一般它用作本地目录中,那些不用checkout的代码,如
  1. "custom_deps": {
  2. "src/content/test/data/layout_tests/LayoutTests": None,
  3. "src/chrome/tools/test/reference_build/chrome_win": None,
  4. "src/chrome_frame/tools/test/reference_build/chrome_win": None,
  5. "src/chrome/tools/test/reference_build/chrome_linux": None,
  6. "src/chrome/tools/test/reference_build/chrome_mac": None,
  7. "src/third_party/hunspell_dictionaries": None,
  8. },
         或者让本地目录从不同位置checkout一个新的代码出来,或者checkout不同的分支、版本等。也可以用于增加在DEPS中不存在的新的项 目
在每个checkout出的工程中,gclient期望发现一个DEPS文件,它定义了工程不同部分都是如何checkout出来。
“DEPS”也是一个python脚本,最简单的,如下:
DEPS文件指定项目的依赖项,它指定以下变量:
deps: a dictionary of child dependencies to fetch要获取的子依赖项
  1. deps = {
  2. "src/outside" : "http://outside-server/trunk@1234",
  3. "src/component" : "svn://svnserver/component/trunk/src@77829",
  4. "src/relative" : "/trunk/src@77829",
  5. }
deps的每个条目都包含一个key-value对,key是被checkout的本地目录,而value就是对应的远程URL。
如果路径是以'/'开头的,那么它是一个相对URL,相对与.gclient中URL地址。
hooks: hooks to run after a sync.
  • Var(): replace this string with a variable defined in vars or overridden.
将此字符串替换为在vars中定义或覆盖的变量

最新文章

  1. [原创]Mac系统下制作OS 10.11安装镜像
  2. Java集合---Arrays类源码解析
  3. iOS Node Conflict svn冲突
  4. 查看系统和PowerShell版本
  5. hdu 1525 Euclid&#39;s Game 博弈论
  6. RHEL7下PXE+Apache+Kickstart无人值守安装操作系统
  7. ubuntu下怎么显示右上角的小键盘
  8. arc engine - ILayer.
  9. Table获取checkbox选中行数据
  10. 【zzulioj 2127】 tmk射气球
  11. Lucence
  12. hibernate利用mysql的自增张id属性实现自增长id和手动赋值id并存
  13. Leetcode_121_Best Time to Buy and Sell Stock
  14. shiro的DelegatingFilterProxy怎么找到ShiroFilterFactoryBean
  15. JMeter调试参数是否取值正确,调试正则提取的结果(log.info|log.error|print)
  16. 第六节:WebApi的部署方式(自托管)
  17. 【leetcode70】【动态规划】 爬楼梯
  18. 观实验室PPT演讲有感
  19. REST WebService与SOAP WebService的比较
  20. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

热门文章

  1. POJ 1636 Prison rearrangement DFS+0/1背包
  2. 微信小程序-wx:for 循环列表
  3. 【Unity】3.1 利用内置的3D对象创建三维模型
  4. android使用POI读写word doc文件
  5. 部署ArcGIS JS API 离线包(Tomcat与IIS)
  6. elementui常用知识点总结
  7. LeetCode: Valid Palindrome 解题报告
  8. Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能
  9. IBM ILOG JViews Charts 产品及功能介绍
  10. [转]在MySQL中创建实现自增的序列(Sequence)的教程