Repo的使用

2014-11-08(六) by chenjia.me

repo 简介

Repo是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库;

从高通或google下载代码是通过repo下载的,是由repo管理的266个git组成的

现在使用的git库是将由repo管理266个小git合并成一个git库导入 目前导入的repo是将项目定制化的内容取出,拆成由repo管理45个小git;

Repo通过manifest.xml来同步代码,xml文件内容如下:

<manifest>
<remote fetch="ssh://gitserver" name="origin" review="http://gerrit:8080"/>  
<default revision=“master” remote=“origin” />     
<project path="build" name="platform/build"/>
<project path="abi/cpp" name="platform/abi/cpp" />
<project path="bionic" name="platform/bionic" />
<project path="bootable/bootloader/lk" name="kernel/lk" />

Repo初始化

Repo脚本获取(仅针对第一次使用)

  • repo脚本已导入git库,库名为git-repo.git
  • 克隆repo库
  • git clone gitserver:git-repo
  • 将git-repo库中的repo脚本拷贝到~/bin目录

增加权限

PATH=~/bin:$PATH
chmod a+x ~/bin/repo

Repo设置成功后,输入repo会提示运行repo init进行初始化

yangfei@YYRD-4:~$ repo error: repo is not installed.  Use "repo init" to install it here.

Repo初始化

 Repo初始化,会在根目录 建立.repo

Repo同步

同步repo代码

Repo sync

初始化分支

Sync成功后,所有的git库都处于 no branch状态,不能进行操作

yangfei@YYRD-4:~/test$ repo branch

         (no branches)

初化分支

Repo start master –all

yangfei@YYRD-4:~/test$ repo start master --all

   Starting master: 100% (45/45), done.

--all意思为对所有项目操作,如果对某个项目操作如下

Repo start master(分支名) cmd1(项目名)

Repo使用(分支初始化之后 ,操作同git)

Repo初如化分支后,可切入各git库进行git的操作

Repo常用命令

Repo forall –c git …..

对由repo管理的git库进行操作, 如repo forall –c git checkout 45451 所有库检出45451分支与远程45451分支对应(若无,则跳过)

Repo checkout <branchname[projectname]

作用:等同于带项目参数的git checkout

Repo branch [projectname]

作用:读取项目分支的情况

Repo abandon <branchname[projectname]

作用:删除指定项目的指定分支,强制删除不管是否有合并,等同git branch –D

Repo version

作用:显示repo版本

Repo status [projectname]

作用:显示分支及修改情况


转载:http://blog.csdn.net/hellofeiya/article/details/8560321


Comments