repo介绍

安装repo

repo_SDK和repo_TD if not REPO_URL: REPO_URL = 'ssh://10.148.192.216:29418/ST/no_sync/repo'

REPO_REV = 'stable' 区别就是这一句

下载并保存了repo引导脚本后,就repo环境是OK的, 1.repo init -u http://szxgit10-rd.huawei.com:8080/HIS/HIS_STB_GIT/HiSTBLinux/manifest.git -b linux_master 2.repo init -u ssh://10.148.192.216:29418/ST/config/manifest.git -b config_JEF_10.1.1_Single_BRG_B211 -m cust.xml --no-repo-verify --repo-branch=stable 命令repo init 的过程: 1.初始化操作会从android的代码中克隆repo.git库(脚本都在这里面,例如上面的ssh://10.148.192.216:29418/ST/no_sync/repo)到当前目录下的,repo/repo目录下。完成repo.git克隆之后,repo init命令会把控制权交给工作区的,repo/repo/main.py(来自repo.git库),继续进行初始化 2.克隆的清单库位于.repo/manifest.xml(地址来自于-u参数例如http://szxgit10-rd.huawei.com:8080/HIS/HIS_STB_GIT/HiSTBLinux/manifest.git 简单介绍下manifest.xml清单(其实就是组装git仓库) 2 3 4 <default remote="szxgit10" revision="linux_master" sync-j="4" sync_c="true" /> 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <project name="TC_HiDolphin_GIT/Android/androidn/device/hal" path="sdk/hisilicon_hal" revision="HAL_DEV" sync_c="true" > 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 3.克隆的清单库位于.repo/manifests.git中,本地克隆到.repo/manifests.清单文件.repo/manifest.xml只是符号链接,它指向.repo/manifests.清单文件.repo/manifest.xml只是符号链接,它指向.repo/maniofests/default.xml(manifest.xml -> manifests/default.xml*) 4.询问用户的姓名和邮件地址,如果和Git默认的用户名,邮件地址不同,则记录在.repo/manifests.gitku的config文件中。 5.命令repo init还可以附带--mirror参数,以建立和上游Android的版本库一模一样的镜像。 6.从哪里下载repo.git? 在repo引导脚本的前几行,定义了默认的repo.git的版本库位置及要检出的默认分支。 REPO_URL='git://android.git.kernel.org/tools/repo.git' REPO_REV='stable' 一般会把脚本拉在自己的仓里面,本地仓速度更快 if not REPO_URL: REPO_URL = 'ssh://10.148.192.216:29418/ST/no_sync/repo'

REPO_REV = 'stable' 如果不想从默认URL地址中获取repo或者不想获取稳定版(stable分支)的repo,可以通过repo init的参数去覆盖默认设置,从指定源地址克隆repo代码库 --repo-url,用于设定repo的版本库地址。 --repo-branch,用于设定要检出的分支 --no-repo-verify,设定不要对repo的里程碑签名进行严格的验证。 其实,当完成repo.git版本库的克隆,repo引导脚本工作就完了,repo init都是由后续戈隆出来的.repo/repo/main.py执行 1.清单库只包含一个default.xml文件。这个XML文件定义了多个版本库和本地地址的映射关系,映射关系可以修改、也是repo工作的指引文件。所以使用repo引导脚本初始化时候需要通过-u指定清单的源地址 repo init命令初始化时,用-u参数指定清单库的位置来下载清单库 repo init -u http://szxgit10-rd.huawei.com:8080/HIS/HIS_STB_GIT/HiSTBLinux/manifest.git -b linux_master 下载清单库相关参数 -u(--manifest-url):设定清单库的git服务器地址 -b(--manifest-branch):检出清单库的特定分支 --mirror:只在repo第一次初始化的时候使用,以和android服务器同样的结构在本地建立镜像(没有工作区) -m:(--manifest-name)当有多个清单时,只可以清单库的某个清单文件为有效的清单文件,默认为defaut.xml repo初始化命令(repo init)可以执行多次: 不带参数地执行repo init,可以从上游清单库获取新的清单文件default.xml -u执行repo init(--manifest-url),和重新锌锭上游的清单库地址,并重新同步 -b(--manifest-branch)执行repoinit,会使用清单库的不同分支,一遍使用repo sync时将项目同步到不同的里程碑 不能使用--mirror命令,该命令只能在第一次初始化时执行