上传Android代码到gerrit服务器
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服务器的更多相关文章
- 2. 上传Android代码到github
1. 建立git仓库 cd到本地项目根目录,执行git命令 git init 同时会在项目根目录下生成一个.git的隐藏文件 windows下先禁用 ...
- 上传Android代码到Jcenter(解决了字符映射的问题)
请先阅读:http://blog.saymagic.cn/2015/02/16/release-library-to-jcenter.html 最外面的build.gradle // Top-leve ...
- 用java 代码下载Samba服务器上的文件到本地目录以及上传本地文件到Samba服务器
引入: 在我们昨天架设好了Samba服务器上并且创建了一个 Samba 账户后,我们就迫不及待的想用JAVA去操作Samba服务器了,我们找到了一个框架叫 jcifs,可以高效的完成我们工作. 实践: ...
- 如何使用Git上传项目代码到代码服务器
如你本机新建Git项目 地址:git@github.com:yourName/yourRepo.git,远程代码库服务器地址:192.168.10.1,远程代码服务器账户名密码:admin 密码:12 ...
- FTP服务器文件上传的代码实现
方式一: @Test public void testFtpClient() throws Exception { // 1.创建一个FtpClient对象 FTPClient ftpClient = ...
- web service上传参数代码实例
web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...
- PHP文件上传至另一台服务器
PHP程序上传文件时,想指定上传到另一台服务器. move_uploaded_file这个方法第二个参数指定的存放路径需要和php程序文件一个服务器,没办法指定其他服务器的地址,本人才疏学浅,哪位大哥 ...
- 第二篇--上传git 代码
准备工作: 首先,注册一个GitHub账号. 接着,新建一个仓库. 最后,下载Git 上传代码步骤: 第一步,新建一个本地文件夹作为本地仓库,进入该文件夹. 右击选择Git Bash Here ,输入 ...
- python之模块ftplib(实现ftp上传下载代码)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...
随机推荐
- java8新特性 日期
1. LocalDateTime 2. Instant package com.atguigu.java8; import java.time.DayOfWeek; import java.time. ...
- JavaSE 学习笔记之包装类(十七)
基本数据类型对象包装类:是按照面向对象思想将基本数据类型封装成了对象. 好处: 1:可以通过对象中的属性和行为操作基本数据. 2:可以实现基本数据类型和字符串之间的转换. 关键字 对应的类名 by ...
- Tensorflow word2vec+manage experiments
Lecture note 5: word2vec + manage experiments Word2vec Most of you are probably already familiar wit ...
- C语言编程规范试题
C语言编程规范试题 [说明]: 1.本试题中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用: 2.如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC ...
- 【Eclipse】Eclipse 快捷键
Eclipse 快捷键 关于快捷键 Eclipse 的很多操作都提供了快捷键功能,我们可以通过键盘就能很好的控制 Eclipse 各个功能: 使用快捷键关联菜单或菜单项 使用快捷键关联对话窗口或视图或 ...
- jsp内置对象(转)
JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...
- N - Is It A Tree? 并查集
A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one ...
- mybatis指定jdbctype
MyBatis 插入空值时,需要指定JdbcType mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换 所以在MyBatis映射文件中要 ...
- qt自己定义搜索框(超简单,带效果图)
1. 什么也不要说.先上效果图: 2. 代码 头文件: #ifndef APPSEARCHLINE_H #define APPSEARCHLINE_H #include <QLineEdit&g ...
- C++ - 模板函数须要类型转换时使用友元(friend)模板函数
模板函数须要类型转换时使用友元(friend)模板函数 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24357301 非模板函数 ...