repo manifest.xml中的group notdefault概念

使用repo重新与服务器同步,摒弃本地更改
 
最近在编译android源码,不小心改了本地的文件,想要重新与服务器同步。使用repo命令将整个项目中与服务器不同的文件都同步了的命令. 只修改了文件内容,而没有改变文件、文件夹存放位置时,才能使用以下命令:

repo forall -c git reset --hard HEAD
 
 
使用repo将本地代码从master branch转换到指定的branch
 
已经通过repo sync将本地代码与服务器上的master branch同步,若想转换成指定的branch,可使用以下命令:
repo forall -c git checkout android-3.0_r1.1
 
 
使用repo下载not default的project
 
仔细看看~/ANDOIRD_SOURCE_ROOT/.repo/manifest.xml文件,里面列出了repo需要同步的所有project的信息。特别注意的是有一些project的group属性为“notdefault”。在仅使用repo sync命令时默认是不下载这些project的。 想要连同下载notdefault的project,那么你在初始化manifest.xml的时候,就要加入-g参数.下表是当前一些project的属性列表。
 
 tools  Packages for dev tools that are not part of the default downloads  notdefault
 device  Packages to build devices supported by AOSP (for instance Nexus devices)  default
 arm  Packages to build ARM system images  default
 mips  Packages to build MIPS system images  default
 x86  Packages to build x86 system images  default
 linux  cross-compiler used on Linux host  default
 darwin  cross-compiler used on MacOS X host  default
 eclipse  Packages used to build Eclipse  notdefault
 motodev  Motodev plugins  notdefault
例如你想下载所有default的project和tools这个not default的project,你可以输入:
$ repo init -u https://android.googlesource.com/platform/manifest -g all,-notdefault,tools
-g之后的参数说明:
all下载所有project,包括default和notdefault的
“-”号后跟name,代表不要下name为名字的project。 例如-notdefault表示不要下载notdefault的project
直接跟project的名字,代表需要下载该名字的project
所以示例中的-g all,-notdefault,tools表示下载所有default的project和tools project。
 
而普通的init初始化:
$ repo init -u https://android.googlesource.com/platform/manifest
就相当于:
$ repo init -u https://android.googlesource.com/platform/manifest -g all,-notdefault
 
使用Git同步单个文件
在需要同步的那个文件所在文件夹中,输入:
git checkout HEAD <your_file_name>

posted on 2014-09-01 01:56  mimamo  阅读(2847)  评论(0编辑  收藏  举报

导航