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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

  <remote  name="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="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 "Init  Commit"
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/bash

set -x
set -e

para1=
work_dir=$1

pwd=${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服务器的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu下搭建repo服务器: 配置git-daemon-run

如何在mac下远程搭建git服务器

CentOS 6下搭建LAMP环境

CentOS7环境下直播和点播服务器的搭建

36 openEuler搭建repo服务器-部署远端repo源

怎么在Ubuntu下搭建服务器