#配置default.xml
创建*** all/manifest.gitt ***仓库:
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
default内容如下:
... ...
project标签中的:
name: 唯一的名字标识project,同时也用于生成git仓库的URL。格式如下:
r e m o t e f e t c h / {remote_fetch}/remotefetch/{project_name}.git
path: 指定git clone出来的代码存放在本地的子目录。如果没有指定,则以name作为子目录名。
上传到远程仓库:
git add .
git comm -am "add default.xml"
git push origin master
#创建GIT仓库
进入Android源码根目录,新建脚本文件:
cd src
vi gerrit_create.sh
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 "> $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
#上传代码到远程仓库
新建脚本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 "
运行脚本,push代码
. gerrit_push.sh
#下载代码导本地
mkdir -p ../des
cd ../des
repo init -u ssh://admin@192.168.130.10:29418/all/manifest.git
repo sync -f -j8
#提交代码到远程仓库
增加 ‘commit-msg’ hook:
curl -Lo .git/hooks/commit-msg http://review.example.com/tools/hooks/commit-msg
将 review.example.com 换成自己的IP。
推送一个change:
git add ...
git commit 。。。。
git push ssh://sshusername@hostname:29418/projectname(origin) HEAD:refs/for/branchname
推送一个patch set :
git add ...
git commit --amend
git push ssh://sshusername@hostname:29418/projectname(origin) HEAD:refs/for/branchname