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.gitrepo_gitadmin sync -f -j4
时间: 2024-11-06 19:24:45