repo简介
高通的Android JellyBean库已经建立完成,目前已经可以正常访问,可以正常提交。
Repo获取代码注意:
1. 首先应有一个repo脚本,并将脚本放到环境变量里,此脚本的配置方法
a) 进入用户主目录
b) git clone git@172.16.98.152:git-repo.git
c) mkdir ~/bin
d) 拷贝repo工具:cp ~/git-repo/repo ~/bin
e) 添加环境变量:vi ~/.bashrc 在最后加入PATH=$PATH:~/bin
f) 重新进入shell或者执行 source ~/.bashrc,OK
2. 添加gitserver和gerrit的ssh host名称和添加gerrit 的http host名称
a) vi ~/.ssh/config
b) 在文件中加入如下:
host gitserver
hostname 172.16.98.152
user git
port 22
host gerrit
hostname 172.16.98.152
user zan.wang
port 29418
如果有些同学已经加过了,略过此步骤,不加入,会无法解析manifest文件中的remote url,详细查看i800JB.xml文件。
c) sudo vi /etc/hosts
d) 在文件中加入:
172.16.98.152 gerrit
如果不加入则无法解析在manifest文件中的review url,详细请查看i800JB.xml文件。
3. 创建repo工作目录,并同步代码
a) mkdir ~/work/i800JB && cd ~/work/i800JB
b) repo init -u gitserver:manifests.git -m i800JB.xml
c) repo sync -j8 (最好不要太多会死机)
4. 编译代码
a) 远程同步下来的代码是没有分支的,用repo branch会显示no branch
b) 远程的代码目前建立了一个i800JB的分支,本地创建的分支尽量和远程项目分支同名,就好比我们之前操作的git一样。
c) 创建本地工作分支用 repo start i800JB --all
d) 此时用repo branch会出现你刚才建立的分支
e) . build/envsetup.sh
f) choosecombo 选择1.release 2.msm8625(后续如果有其他相应device,请依据项目选择) 3.eng(暂时选择eng)
g) make -j4
5. 提交和上传代码
a) 如果本地有代码修改,需要提交,请到相应的工作目录,按照git的commit方式提交,上传的时候才需要用到repo
b) 如果改动的工程较多,建议用repo stage命令来增加文件的track动作,但是提交就要到相应的目录里面老老实实的用git commit来提交了。
c) Repo upload 命令在上传代码时,仅是上传到gerrit,还需要进行review后才会在代码库中体现。格式为 repo upload --re=zan.wang kernel。这里的kernel为project名称。这里的--re添加review人员命令,我试过是无效的,不知道是否是本地服务器有问题。Upload过程根据屏幕提示,确认几次。成功后,到172.16.99.44:8080 gerrit服务器添加审核人员。
d) 如果远程的git库有可写权限,也可以在每个project下面用git进行提交,不过目前仅是可读权限,如果个别人员开放了写权限,可以进行此操作,和单独操作git库无异。
e) 目前i800JB项目的remote名称为phicomm,可以查看在manifests库里面的i800JB.xml文件。用git上传某个project的修改时需注意这里的remote为phicomm,而非origin。
6. Repo使用介绍
a) repo是一个用来管理多个git库的工具
b) 在repo中,每一个git库都称为一个project
c) repo list 可以查看repo所管理的projects,目前project的名称是和所在路径是同名的
d) repo status 可以查看本地修改的文件
e) repo branch 可以查看每一个project所有的分支名称
f) repo start 创建本地的工作分支,比如:repo start 分支名 --all为所有project创建分支,repo start 分支名 kernel 为kernel project创建分支名
g) repo abandon 删除分支,用法和start差不多。比如:已经为kernel project创建了i800JB分支,用repo abandon i800JB kernel 命令,可以删除kernel project中的i800JB分支。如果执行repo abandon i800JB --all就会删除所有project上面名字为i800JB的分支。执行完repo abandon后,project会工作在no branch状态,还需手工start一个分支。
h) repo forall 为所有project执行命令。比如:repo forall -c git tag XXXX_XXX_V1.0_SH 代表为每一个project加入tag
i) repo init 初始化repo库,-u 代表url,-b代表branch,-m 代表manifest文件。比如:repo init -u gitserver:manifests.git -m i800JB.xml 代表的是从gitserver服务器上的manifests.git库中,选择i800JB.xml作为manifest文件。
这里没有-b,是由于目前所建立的manifests.git库中,仅有一个master分支。没有-b选项,默认是从manifests.git库的HEAD指针处取得manifest文件
如果没有-m选项,则代表使用的默认的manifest文件,默认的文件名称为default.xml
j) repo overview 查看project里面没有提交的记录。
k) repo upload 的时候,请用repo upload --re=REVIEW人员(比如zan.wang),系统会自动发邮件告知REVIEW人员,我试过是无效的,不知是否是本地gerrit服务器的问题。
4.1代码库升级2050版本完成,Android 版本变为4.1.2,可以编译通过,可以开机,可以上网,可以打电话等。
本次服务器分支i800JB-2050的建立不再基于高通的tag来建立了,是基于本地tag i800JB-2050-begin 来建立,因此各位同事请大胆sync,不会再出现因高通修改tag位置而导致的编译不过问题了。
请大家按照以下方式更新:
1. repo init -m i800JB-2050.xml (如果是新建目录,repo init -u gitserver:manifests.git -m i800JB-2050.xml)
2. repo sync
3. sync过程中有可能会出现类似error: device/qcom/msm7627a/: branch i800JB is published (but not merged) and is now 28 commits behind 的提示,请忽略它。
4. 更新完成后,repo start i800JB-2050 --all
5. 如果本地有修改,即modified,added状态的文件,在start新分支时会报错,请提交或者还原他们。部分untracked的文件不受影响。
6. . build/envsetup.sh
7. choosecomboext 0,1,9,1 (default,release,msm8625,user)
8. make -j4
9.
repo简介的更多相关文章
- repo学习总结
转载:https://blog.csdn.net/salmon_zhang/article/details/79180075 1. repo简介 repo是Google开发的用于管理Android版本 ...
- yum的repo文件详解、以及epel简介、yum源的更换、常用yum命令
https://www.cnblogs.com/nineep/p/6795692.html yum的repo文件详解.以及epel简介.yum源的更换 常用命令如下: yum list ...
- yum是什么?repo文件详解,epel简介,yum源的更换,repo和epel区别
yum是什么?repo文件详解,epel简介,yum源的更换,repo和epel区别 简单概括: repo和epel的关系 repo是配置源的,即配置从哪里下载包(以及依赖关系)的. epel是作为桥 ...
- yum的repo文件详解、以及epel简介、yum源的更换
一.什么是repo文件 repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包 ...
- Openstack Day1简介及虚拟环境搭建
本文章仅作为作者本人存档记忆!恕不详细展开内容! openstack kilo版本重要组件(module)简介 ======================================= Ke ...
- YUM源的简介,配置与使用
A.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...
- Maven3简介
Maven3简介 百度百科 maven官网: http:\/\/maven.apache.org\/ Maven下载安装 Maven 下载:http:\/\/maven.apache.org\/dow ...
- git的简介,安装以及使用
1git的简介 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 2Linus一直痛恨的CVS及SVN都是集中式的版本控制系 ...
- varnish4.0简介
Varnish 4.0 简介 Varnish 是一款开源的HTTP加速器和反向代理服务器,它的主要特点有: (1)是基于内存缓存,重启后数据将消失.(2)利用虚拟内存方式,io性能好.(3)支持设置0 ...
随机推荐
- Nopcommerce商城添加【满XX减XX优惠券】功能
公司的电商网站要做个优惠券的功能,nop框架,但我接触nop时间不多,最后还是为了功能而完成了.这中间肯定有很多小问题. Nopcommerce自带的促销功能感觉不是很好,首先优惠券功能放在购物车页面 ...
- Js打开新窗口拦截问题整理
一.js打开新窗口,经常被拦截 //js打开新窗口,经常被拦截 //指定本窗口打开,可以使用 window.open('http://www.tianma3798.cn', '_self'); //不 ...
- 解压版mysql安装--windows系统
1 解压到某个目录 2 配置配置文件 3 执行命令:安装目录/bin/mysqld --install mysql5.6 --defaults-file=指定配置文件位置 "安装目录/bin ...
- 几种破解MySQL root密码的几种方法:
几种破解MySQL root密码的几种方法: 方法一 使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWord函数. 方法二 使用mysqladmin,这 ...
- Struts2的创建Web项目入门
之前学过javaEE开发,学了之后便去做前端了,再也没碰过javaEE.现在重新学习和部署,入门级,使用MyEclipse10版本. 简单说一下过程. struts步骤: 1. web project ...
- C++拾遗(四)指针相关
指针声明与初始化 在将指针初始化为一个确定的地址后,才能安全的对指针使用 *操作. 将整数赋值给指针时要使用强制转换(typeName *). 分配内存 C中用malloc(); C++更提倡使用ne ...
- C#中串口与Modem的通信
C#中串口与Modem的通信 2007-08-20 09:52643人阅读评论(8)收藏举报 最近一段时间,试验了串口的数据传输.在C#中,其实有一个很好的类SerialPort使串口间的通信变得简单 ...
- Python交互模式下方向键出现乱码
解决办法如下: 1.安装readline模块 readline库是bash shell用的库,包含许多功能,如命令行自动补全等. ubuntu下安装的命令: sudo apt-get instal ...
- HTML5最佳实践
首先先给大家推荐个不错的 前端 网站:http://www.tystudio.net HTML5正迅速称为web前端开发技术标准,作为一名前段开发人员,了解并正确的使用HTML5制作网站变得越来越重要 ...
- Git之detached HEAD
今天遇到了和CSDN上博主相同的问题,就是使用git -branch -a 发现自己处于一个零时的分支上.这篇博文写的不错,转载记录一下. 转载:http://blog.csdn.net/lili62 ...