Ubuntu下搭建repo服务器:搭建Android repo服务器

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述Ubuntu下搭建repo服务器:搭建Android repo服务器相关的知识,希望能为你提供帮助。
1. 配置repo
1.1   下载git-repo.git(B端)

mkdir -p ~/gitCfg cd ~/gitCfg git clone https://gerrit.googlesource.com/git-repo git-repo.git

如果上面的地址无法连接,可以尝试下面的地址:
git clone https://review.mfunz.com/git-repo git-repo.git

1.2 配置repo(B端)
a) 将git-repo.git目录下的repo拷贝到 /usr/bin:
cd git-repo.git sudo cp repo /usr/bin/repo_gitadmin

b)  修改 repo
vi /usr/bin/repo_gitadmin

修改
REPO_URL = ‘https://gerrit.googlesource.com/git-repo‘ REPO_REV = ‘stable‘


REPO_URL = /home/gitadmin/gitCfg/git-repo.git REPO_REV = ‘master‘

其中,
REPO_URL: repo 所调用库和管理引用仓库;
REPO_REV: 本文设置分支为master,可进入git-repo.git用命令git branch查看:
cd git-repo.git git branch -avv 

 
2.  创建版本根目录(A端)
2.1 如果已经存在 /home/git/repositories 目录,就不需要创建,否则:
sudo su git cd /home/git mkdir repositories

2.2 初始化manifest仓库
cd repositories git init --bare 17435/manifest.git

 
3. 配置default.xml文件(B端)
default.xml是跟android代码配套的,可参考google Android源码下的repo(.repo/manifests/default.xml)进行修改。
3.1 克隆manifest.git
mkdir/home/gitadmin/17435 cd/home/gitadmin/17435 git clone [email  protected]:17435/manifest.git cd manifest.git

3.2  配置default.xml
vi default.xml

本文的配置如下:
< ?xml version="1.0" encoding="UTF-8"?> < manifest> < remotename="origin" fetch="git://192.168.1.126" /> < default revision="master" remote="origin" sync-j="4" /> < project path="build" name="platform/build" groups="pdk" > < copyfile src="https://www.songbingjia.com/android/core/root.mk" dest="Makefile" /> < /project> < project path="abi/cpp" name="platform/abi/cpp" groups="pdk" /> ... ...< /manifest>

将上面的default.xml 文件push 到仓库:
git add . git commit -m "InitCommit" git push 或者 git push --all


4.  建立相关的git 仓库(A端)
4.1 获取需要新建的仓库目录列表
cd /home/git/repositories/17435 cat default.xml | cut -d ‘"‘ -f 4 > repos_17435.txt

在repos_17435.txt中删除不必要的行,如manifest, Makefile等。
4.2 新建脚本repos_17435.sh
#/bin/bash set -x set -e pwd=${PWD}cd /home/git/repositories/17435 while read line; do if [ -z "$line" ]; then echo $work_dir not exist !!!!!!!!!! 1> & 2 continue fi git init --bare $line.git echo ==== $line pwd done

4.3 使用如下命令新建仓库
cat repos_17435.txt | . repos_17435.sh

 
5. 上传代码到仓库(B端)
5.1 拷贝Android代码到目录,
/home/gitadmin/17435/src

并清除其中git和svn等版本控制信息。
5.2 通过default.xml得到需要上传的仓库目录保存在src_17435.txt中
cd /home/gitadmin/17435/src cat /home/gitadmin/17435/manifest.git/default.xml | cut -d ‘"‘ -f 2 > src_17435.txt

编辑src_17435.txt,清除不必要的行。
5.3 新建脚本src_17435.sh如下:
#/bin/bashset -x set -epara1= work_dir=$1pwd=${PWD}while read line; do line1=${line%%/*} if [ -z "$line" ]; then echo $work_dir not exist !!!!!!!!!!!! 1> & 2 continue fi if [ $(ls -A $pwd/$line | wc -l) -eq 0 ]; then echo $work_dir empty !!!!!!!!!!!! 1> & 2 continue fi workdir=$pwd/$line echo ==== $workdir cd $workdir rm -rf .git git init .1> & 2 git add . -f 1> & 2 git commit -m "Initial commit" 1> & 2 if [ "$line1" = "device" ]; then git push --set-upstream git://192.168.1.126/17435/$line.git master elif [ "$line1" = "vendor" ]; then git push --set-upstream git://192.168.1.126/17435/$line.git master else git push --set-upstream git://192.168.1.126/17435/platform/$line.git master fi cd - done

5.4  使用如下命令上传代码到仓库:
cat src_17435.txt | . src_17435.sh

 
6. 下载代码
mkdir -p /home/gitadmin/17435/des cd /home/gitadmin/17435/des repo_gitadmin init -u git://192.168.1.126/17435/manifest.git
repo_gitadmin sync -f -j4

【Ubuntu下搭建repo服务器:搭建Android repo服务器】 

    推荐阅读