Ubuntu下搭建repo伺服器(三): 搭建Android repo伺服器

來源:互聯網
上載者:User

標籤:

1. 配置repo

1.1  下載git-repo.git(B端)

mkdir -p ~/gitCfgcd ~/gitCfggit 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.gitsudo 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.gitREPO_REV = ‘master‘

其中,

REPO_URL: repo 所調用庫和管理引用倉庫;

REPO_REV: 本文設定分支為master,可進入git-repo.git用命令git branch查看:

cd git-repo.gitgit branch -avv 

 

2. 建立版本根目錄(A端)

2.1 如果已經存在 /home/git/repositories 目錄,就不需要建立,否則:

sudo su gitcd /home/gitmkdir repositories

2.2 初始化manifest倉庫

cd repositoriesgit 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/17435cd  /home/gitadmin/17435git clone [email protected]:17435/manifest.gitcd 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/17435cat default.xml | cut -d ‘"‘ -f 4 > repos_17435.txt

在repos_17435.txt中刪除不必要的行,如manifest, Makefile等。

4.2 建立指令碼repos_17435.sh

#/bin/bashset -xset -epwd=${PWD}cd /home/git/repositories/17435while read line; do    if [ -z "$line" ]; then        echo $work_dir not exist !!!!!!!!!! 1>&2        continue    fi        git init --bare $line.git        echo ==== $line        pwddone

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/srccat /home/gitadmin/17435/manifest.git/default.xml | cut -d ‘"‘ -f 2 > src_17435.txt

編輯src_17435.txt,清除不必要的行。

5.3 建立指令碼src_17435.sh如下:

#/bin/bashset -xset -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/descd /home/gitadmin/17435/desrepo_gitadmin init -u git://192.168.1.126/17435/manifest.git
repo_gitadmin sync -f -j4

 

Ubuntu下搭建repo伺服器(三): 搭建Android repo伺服器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.