先来个示例:
<?xml version=”1.0” encoding=”UTF-8”?>
<manifest><remote name=”omapzoom” fetch=”git://git.omapzoom.org/“ />
<remote name=”gh” fetch=”git://github.com/“ /><!– CM removals –>
<remove-project name=”github/CyanogenMod/android_frameworks_av” />
<remove-project name=”MoKee/android_frameworks_base” /><project path=”frameworks/base” name=”Quarx2k/android_frameworks_base” remote=”gh” revision=”cm-10.2” />
</manifest>
首先看一下: <remote name=”xxxx” 指定了仓库名可自定义 fetch=”git://github.com/“ 指定了要fetch的仓库地址 比如你要fetch github 其他人的项目,那fetch就这样写。
其次:remove-project 移除manifests文件中的default.xml 的项目,移除的时候要指定 name=”xxx”name 可以可以在default.xml中看到
最后:添加自己的想要的项目 <project path=”xxx” name=”xx” remote=”xx” revision=”xx” />path :同步完源码所储存的路径 、
name :别人仓库地址 比如name=”Quarx2k/android_frameworks_base”这个项目在github上保存 remote: 指定同步仓库,remote与name 联系紧密 比如我这里用了remote=”gh” 则他和name 一起构成
git://github.com/Quarx2k/android_frameworks_base 把git协议换成https 协议是可以访问到的
revision :指定同步的项目的分支
remote revision 可选主要是看你要添加的项目的仓库有没有在default.xml中定义 如下:
<remote name=”mokee”
fetch=”..”
review=”review.mfunz.com” /><default
revision=”refs/heads/jb-mr2_mkt”
remote=”mokee”
sync-c=”true”
sync-j=”4” />
如果你没有定义remote 和revision那么他就会默认使用default标签中定义的remote和revision
比如我今天同步mokee 4.3的源码分支是jb-mr2_mkt 他默认是从龙猪服务器下载 由(remote)可知,但是我添加的项目却从github下载,而且default.xml中没有定义github的remote,所以就必须自己在local_manifest.xml中定义github的remote <remote name=”gh” fetch=”git://github.com/“ />
然后,自己添加的项目上都要添加remote=”gh” 来定义下载fetch路径 ,同样我要下载的分支都是cm-10.2 但是默认的是refs/heads/jb-mr2_mkt 所以我就要在添加的项目中都定义revision=”cm-10.2”
ps:如果自己要添加的项目remote 和revision不是用default.xml中defualt默认定义的的话,都要自己添加设置,相反要是与默认相同,那么remote和revision可以省略,就像前面说过的remote和revision是可选的
ok,到此,只是自己的一点观点,和一点理解。有错误欢迎各位指出。