创建repo仓库管理Android源码

本文详细介绍了如何在Android开发环境中搭建Gerrit服务器,包括安装Gerrit、Gitweb、Repo工具,以及创建和管理源码仓库的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我们知道Android源码是由很多个小的git组成,这样可以只clone我们需要修改的部分而不用关心其他,但编译的时候需要整个源码,这就需要将所有源码都下载并同步,这时候就需要使用repo来管理,尤其是当我们从芯片厂商拿到平台源码之后,还需要搭建自己的gerrit服务器管理源码。

安装gerrit

  1. 安装gerrit服务器,下载gerrit-3.2.1.war或者其他版本

     mkdir gerrit
     cd gerrit
     java -jar gerrit-3.2.1.war init -d review_site
    
  2. 编辑review_site/etc/gerrit.config(修改服务器ip)

    1

  3. 启动/停止gerrit服务

     cd gerrit/review_sites/bin
     ./gerrit.sh  start     #启动gerrit服务
     ./gerrit.sh  stop      #停止gerrit服务
    
  4. 在客户端的浏览器中输入服务器网址进入访问:http://192.168.15.128:8080

    1

  5. 注册登录后第一个用户就是管理员,添加公钥,方便后续使用

  6. gitweb安装

     sudo apt-get install gitweb
     #/usr/share/gitweb/gitweb.cgi是为gitweb安装目录。
     #可通过find /usr - name gitweb.cgi查找
     git config --file /绝对路径/gerrit/review_site/etc/gerrit.config gitweb.cgi /usr/share/gitweb/gitweb.cgi
     git config --file /绝对路径/gerrit/review_site/etc/gerrit.config --unset gitweb.url
    

安装repo

  1. 利用gerrit创建自己的repo库

     ssh -p 29418 192.168.15.128 gerrit create-project --branch stable --empty-commit repo;
    

    1

  2. 提交自己的repo仓库

     git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
     cd git-repo
     git checkout stable
     //将从google那里clone的repo提交到自己的服务器(在上一个步骤创建的)
     git push --mirror lost@192.168.15.128:/home/lost/lost/tools/gerrit/review_site/git/repo.git
    
  3. 安装repo

     curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo
     chmod a+x /usr/bin/repo
    
  4. 修改repo的默认url,这样不用每次在repo init的时候指定url

     ## repo default configuration
     ##
     from __future__ import print_function
     REPO_URL='ssh://192.168.15.128:29418/repo.git'
     REPO_REV = 'stable'
    

创建Android源码的所有小git工程仓库

  1. 批量生成脚本create-gerrit-projects.sh

     #!/bin/bash
    
     if [ $# -lt 1 ] ; then
     	echo "usage : ./create-gerrit-projects.sh project.list";
     	exit 1;
     fi
    
     project_list=$1
    
     for i in  `cat ${project_list}`;
     do
     	echo $i
     	ssh -p 29418 192.168.15.128 gerrit create-project --branch Android-N/master --empty-commit Android-N/$i;
     done
    

    1

  2. 将所有需要生成的工程,放在同一文件内project.list(一般获取到的源码的./repo/repo/有,可以直接拿来用)

    1

  3. 创建所有小git工程仓库

    1

     ./create-gerrit-projects.sh project.list
    

创建manifest工程仓库

  1. 创建仓库

     ssh -p 29418 192.168.15.128 gerrit create-project --branch Android-N/master --empty-commit manifest;
    
  2. 添加default.xml(一般获取到的源码的./repo/repo/manifest有,可以直接拿来用)

    1

     git clone -bare ssh://192.168.15.128:29418/manifest -b Android-N/master
     cd manifest && scp -p -P 29418 lost@192.168.15.128:hooks/commit-msg .git/hooks/
     
     cp ../share/default.xml .
     git commit -m "init default.xml"
     git push origin HEAD:refs/for/Android-N/master
    

同步代码

repo init -u ssh://192.168.15.128:29418/manifest.git -b Android-N/master
repo sync
新建本地mater分支(必须)
repo start master --all

转载请注明出处:http://www.wolfnx.com/2020/06/14/Android-Repo

作者 : wolfnx
邮箱 : wolfnx@outlook.com
邮箱2 : lostnx@gmail.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值