順便配合 repo 的 source code 看一下 .. project.py : def _ParseProject(self, node):
每個 project 可有 remote attrib,如果沒有指定,就是 用 default:
remote = self._get_remote(node)
if remote is None:
remote = self._default.remote
接下去看才知道 repo 規定 manifest 一定要有 remote 設定,否則 fail: if remote is None:
raise ManifestParseError, \
"no remote for project %s within %s" % \
(name, self.manifestFile)
好麻煩,我翻譯一下那一篇好了
android 是由一堆 open source 專案組成的, google 為了管裡這麼多用 git 管理的專案,寫了 repo 這個程式。
repo 使用 manifest 檔來描述管理的 project
以下這個是 omap 的 android manifest 內容:
一開始的部份,描述 remote target..
<remote name="korg"
fetch="git://android.git.kernel.org/"
review="review.source.android.com" />
<remote name="omap"
fetch="git://git.omapzoom.org/" />
<default revision="master"
remote="korg">
說明這個 manifest 檔有兩個 remote target,一個是 andorid - 叫 korg,另一個是 omapzoom,叫 omap接著說明 default 的 remote 是 korg
之後,所有 project 的描述,就可以直接拿 korg, omap 來用。
<project path="hardware/ti/omap3"
name="repo/android/hardware/ti/omap3" remote="omap" />
如果沒說明,就用 default:
<project path="bionic" name="platform/bionic" />