repo批量创建远端仓库----建立自己的android代码仓库

  转载请注明:http://blog.csdn.net/yanxiangyfg

    android代码团队开发中,为了团队合作我们需要建立代码仓库,以便进行团队间的协作. android最常用的代码管理工具是git, 那么团队间合作各自需要合入特性,这样就需要一个地方来存放代码,一般又三种方法:

1>在github上进行托管

2>建立本地代码库,团队所以代码都提交这个本地仓库

3>建立公司内部的代码管理服务器,一般公司都使用建立自己代码服务器的方式来进行代码托管

这里是对工作中碰到的问题的记录,所以对于建立git服务器和下载android源码这里就暂且不说,这里直接假设git服务器已经搭建好,  android源码下载到你自己的pc机器上了.接下来的工作就是怎么在远端git服务器建立自己的仓库,然后把android代码上传到远端仓库.

建立公司的代码管理库:


1.建立单个库的方法: 比如: (下面标红部分替换为自己的git用户名和服务器ip即可)

第一步:

ssh -p 29418 user@server_ip gerrit create-project -n project_name/platform_build      

(远端建立platform_build仓库,之所以要用前缀” project_name/ “主要是为了多个项目的情况下好找到对于的仓库地址,建立之后远端库的分支名默认为 master)

第二步:

git push ssh://user@server_ip:29418/project_name/platform_build  HEAD:refs/heads/master

(进入本地源代码目录,这里对应android源码的build目录,然后执行上面命令,代码就上传到之前建立的远端库了)

第三步:

git clone ssh://user@server_ip:29418/project_name/platform_build

(在本地随便一个地方执行上述命令,测试是否可以下载刚才上传上去的代码,如果可以就成功的建立的一个git库了.恭喜!)


但是android源码的git仓库有好几百个,这样一个个建立姨妈都会失调, 是不是可以不在生理失调的情况下一次性建立这么多库呢,我只能说:那是必须的,请听我马上到来:

批量建立库的方法:

第一步:

首先把需要建立的库全部列在一个文件里面.这些库名字可以从源码下的.repo/manifest.xml中提取出来,然后建立一个project-list文件存放这个列表,内容如下:

project-list列表如下:
platform_build
dplatform/abi/cpp
platform_bionic
platform/bootable/bootloader/legacy
platform_bootable_diskinstaller
platform/bootable/recovery
platform/cts
platform_dalvik

…………

第二步: 

写一个脚本来批量建立远端仓库,然后批量上传android源码.  假设这个脚本交repo_creat_branch.sh. 其内容如下:

######################

for i in  `cat project-list`;   #这个list可以从manifest.xml中的name中提取出来
do
    echo $i     #测试用,加这里方便看进展
    ssh -p 29418 user@server_ip gerrit create-project -n project_name/$i;   #建立单个仓库
done
repo forall -c ‘git push ssh://user@server_ip:29418/project_name/$REPO_PROJECT  HEAD:refs/heads/master’

##等循环建立玩各个仓库之后,用repo一键式上传所有代码,ok搞定.  这样完成之后你可以测试下是否成功的

##上传了所以代码,看如果下第三步:


第三步: repo init -u ssh://user@server_ip:29418/project_name/platform_manifest -bmaster 

第四步: repo sync   #这一步之后,如果代码全部下载下来,恭喜你,成功建立的自己的库

    原文作者:guan506713512
    原文地址: https://blog.csdn.net/guan506713512/article/details/42290915
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞