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. vue中axios设置

    //设置默认全局baseURL axios.defaults.baseURL=process.env.BASE_API; //设置默认全局携带浏览器cookie axios.defaults.with ...

  2. circumferential averaged streamwise velocity in ParaView

    Goal: get a averaged axial velocity in a circular loop (dashed line in the following figure) Steps: ...

  3. Linux 复习二

    第二章 一.Linux文件系统 1.基本概念 Linux文件系统为单根的树状结构,根为“/”,文件名大小写敏感,除了“/”都是可用字符,文件名以“.”开始的为隐藏文件. 2.常用文件夹 bin:可执行 ...

  4. pat甲级 1107. Social Clusters (30)

    When register on a social network, you are always asked to specify your hobbies in order to find som ...

  5. poj 3074

    题意:解数独 分析: 完整的数独有四个充要条件: 1.每个格子都有填数字 2.每列都有1~9中的每个数字 3.每行都有1~9中的每个数字 4.每个9宫格都有1~9中的每个数字 可以转化成精确覆盖问题. ...

  6. tomcat上传图片失败

    今天,突然遇到个奇怪的问题,tomcat上传图片时好时坏,经查线上四台服务有一台服务器硬盘满了. 解决一下硬盘空间的问题,有好使了,那么图片上传通过流写到远程对象存储服务中,并没有落盘和硬盘满有哪些关 ...

  7. 1.4-动态路由协议OSPF⑥

    OSPF Network Type/网络类型     (Run Mode/运行模式) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 物理 ...

  8. Java---15---单例设计模式:---饿汉式和懒汉式

    概念: 单例模式确保某个类仅仅有一个实例.并且自行实例化并向整个系统提供这个实例.   单例模式有下面特点: 1.单例类仅仅能有一个实例 2.单例类必须自己给自己创建自己的唯一实例 3.单例类必须给全 ...

  9. 创建SharePoint 2010 Timer Job

    好久没有写博客了. 近期在使用SharePoint 2010中Timer Job的功能,有了一点心得,分享一下. 我个人觉得SharePoint Timer Job和Windows Service或者 ...

  10. 我的Go语言学习之旅七:创建一个GUI窗口

    在上次中,刚刚学过了  弹窗效果.这里再接着学习一下怎样创建一个窗口. 还是老路子,先上代码: package main import ( "github.com/lxn/go-winapi ...