1. 配置default.xml

default.xml是跟Android代码配套的,可参考google Android源码下的default.xml(.repo/manifests/default.xml)进行修改。

新建仓库all/manifest.git,

ssh -p 29418 admin@192.168.130.10 gerrit create-project --empty-commit all/manifest

clone到本地,

git clone ssh://admin@192.168.130.10:29418/all/manifest.git

配置default.xml,

cd manifest
vi default.xml

内容如下,

<?xml version="1.0" encoding="UTF-8"?>
<manifest> <remote name="origin"
fetch=".." />
<default revision="master"
remote="origin"
sync-j="8" /> <project path="build" name="platform/build" groups="pdk" >
<copyfile src="core/root.mk" dest="Makefile" />
</project> ... ... </manifest>

上传到远程仓库,

git add .
git comm -am "add default.xml"
git push origin master

2. 创建git仓库

进入Android代码目录,新建脚本文件,

cd src
vi gerrit_create.sh

内容如下:

LOCAL_PATH=`pwd`
MANIFEST_XML_FILE=$LOCAL_PATH/../manifest/default.xml USER_NAME="admin"
SERVER_IP="192.168.130.10"
SERVER_PORT="29418" OUTPUT_PROJECT_LIST_FILE_NAME=$LOCAL_PATH/project_list_name
OUTPUT_PROJECT_LIST_FILE_PATH=$LOCAL_PATH/project_list_path function getNameAndPath()
{
echo > $OUTPUT_PROJECT_LIST_FILE_NAME
echo > $OUTPUT_PROJECT_LIST_FILE_PATH while read LINE
do
command_line=`echo $LINE | grep "<project"`
if [ "$command_line" ]
then
#echo $LINE reposity_name_sec=${LINE#*name=\"}
reposity_path_sec=${LINE#*path=\"} if [ "$reposity_name_sec" ] && [ "$reposity_path_sec" ]
then
reposity_name=${reposity_name_sec%%\"*}
reposity_path=${reposity_path_sec%%\"*}
echo "$reposity_name" >> $OUTPUT_PROJECT_LIST_FILE_NAME
echo "$reposity_path" >> $OUTPUT_PROJECT_LIST_FILE_PATH
fi
fi
done < $MANIFEST_XML_FILE
} function creatEmptyGerritProject()
{
for i in `cat $OUTPUT_PROJECT_LIST_FILE_NAME`;
do
echo $i
echo "ssh -p $SERVER_PORT $USER_NAME@$SERVER_IP gerrit create-project --empty-commit $i"
ssh -p $SERVER_PORT $USER_NAME@$SERVER_IP gerrit create-project --empty-commit $i
done
} function removeFiles()
{
rm -rf $LOCAL_PATH/project_list_name
rm -rf $LOCAL_PATH/project_list_path
} getNameAndPath
creatEmptyGerritProject
removeFiles

运行脚本,创建git仓库,

. gerrit_create.sh

3. 上传代码到远程仓库

新建脚本gerrit_push.sh

vi gerrit_push.sh

内容如下,

LOCAL_PATH=`pwd`
MANIFEST_XML_FILE=$LOCAL_PATH/../manifest/default.xml USER_NAME="admin"
SERVER_IP="192.168.130.10"
SERVER_PORT="29418" function pushLocalToRemote()
{ while read LINE
do
cd $LOCAL_PATH
command_line=`echo $LINE | grep "<project"`
if [ "$command_line" ]
then
#echo $LINE
reposity_name_sec=${LINE#*name=\"}
reposity_path_sec=${LINE#*path=\"} if [ "$reposity_name_sec" ] && [ "$reposity_path_sec" ]
then
reposity_name=${reposity_name_sec%%\"*}
reposity_path=${reposity_path_sec%%\"*} src_path=$LOCAL_PATH/$reposity_path if [ -d "$src_path" ]; then
cd $src_path
echo `pwd` rm -rf .git
rm -rf .gitignore
git init
git remote add origin ssh://$USER_NAME@$SERVER_IP:$SERVER_PORT/$reposity_name.git
git pull origin master
git add -A .
git commit -am "init commit"
git push origin master
cd -
fi
fi
fi done < $MANIFEST_XML_FILE
} pushLocalToRemote

运行脚本,push代码,

. gerrit_push.sh

4. 下载代码

mkdir -p ../des
cd ../des
repo init -u ssh://admin@192.168.130.10:29418/all/manifest.git
repo sync -f -j8

上传Android代码到gerrit服务器的更多相关文章

  1. 2. 上传Android代码到github

    1. 建立git仓库     cd到本地项目根目录,执行git命令     git init          同时会在项目根目录下生成一个.git的隐藏文件          windows下先禁用 ...

  2. 上传Android代码到Jcenter(解决了字符映射的问题)

    请先阅读:http://blog.saymagic.cn/2015/02/16/release-library-to-jcenter.html 最外面的build.gradle // Top-leve ...

  3. 用java 代码下载Samba服务器上的文件到本地目录以及上传本地文件到Samba服务器

    引入: 在我们昨天架设好了Samba服务器上并且创建了一个 Samba 账户后,我们就迫不及待的想用JAVA去操作Samba服务器了,我们找到了一个框架叫 jcifs,可以高效的完成我们工作. 实践: ...

  4. 如何使用Git上传项目代码到代码服务器

    如你本机新建Git项目 地址:git@github.com:yourName/yourRepo.git,远程代码库服务器地址:192.168.10.1,远程代码服务器账户名密码:admin 密码:12 ...

  5. FTP服务器文件上传的代码实现

    方式一: @Test public void testFtpClient() throws Exception { // 1.创建一个FtpClient对象 FTPClient ftpClient = ...

  6. web service上传参数代码实例

    web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...

  7. PHP文件上传至另一台服务器

    PHP程序上传文件时,想指定上传到另一台服务器. move_uploaded_file这个方法第二个参数指定的存放路径需要和php程序文件一个服务器,没办法指定其他服务器的地址,本人才疏学浅,哪位大哥 ...

  8. 第二篇--上传git 代码

    准备工作: 首先,注册一个GitHub账号. 接着,新建一个仓库. 最后,下载Git 上传代码步骤: 第一步,新建一个本地文件夹作为本地仓库,进入该文件夹. 右击选择Git Bash Here ,输入 ...

  9. python之模块ftplib(实现ftp上传下载代码)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...

随机推荐

  1. Python机器学习入门(1)之导学+无监督学习

    Python Scikit-learn *一组简单有效的工具集 *依赖Python的NumPy,SciPy和matplotlib库 *开源 可复用 sklearn库的安装 DOS窗口中输入 pip i ...

  2. Batchelor Prize

    awards in fluid mechanics The Prize of $25,000 is awarded every four years to a single scientist for ...

  3. Packages on Ubuntu OS

    openSSH https://help.ubuntu.com/lts/serverguide/openssh-server.html

  4. [bzoj1833][ZJOI2010][count] (数位dp)

    Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文 ...

  5. [转] angular2+highcharts+chart.js

    这里是在ionic2下使用highchairs和chart.js的简单示例chartjs部分参考http://www.jianshu.com/p/bc18132da812 1.安装hightchart ...

  6. java 访问对象私有变量

    Captcha captcha = getCaptcha(captchaId); // 通过反射获取验证码值 Class<?> classType = captcha.getClass() ...

  7. Ajax_使用 jQuery 实现Ajax

    [jQuery中的Ajax] 1.jQuery对Ajax操作进行了封装,在jQuery中最底层的方法时 $.ajax().第二层是 load() , $.get()  和 $.post(),第三层是 ...

  8. poj 2135最小费用最大流

    最小费用最大流问题是经济学和管理学中的一类典型问题.在一个网络中每段路径都有"容量"和"费用"两个限制的条件下,此类问题的研究试图寻找出:流量从A到B,如何选择 ...

  9. ACM 数学

    欧几里得辗转相除法求最大公约数 int gcd(int a,int b) { ) return a; else return gcd(b,a%b); } 求组合数 int C(int n ,int m ...

  10. SiteMesh2-标签库

    SiteMesh包括两大标签库. 一.Decorator Tags:被用于建立装饰器页面. 1.<decorator:head/>  插入原始页面(被包装页面)的head标签中的内容(不包 ...