Ubuntu搭建Android服务器,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

本文的配置如下:

fetch="git://192.168.1.126" />

remote="origin"

sync-j="4" />

... ...

将上面的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

原文:http://www.cnblogs.com/eastnapoleon/p/5909471.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值