2009-09-08

repo の local_manifest -- 自分用リポジトリーの追加

repo コマンドを使うと、複数の git リポジトリーを一括管理できる。

repo の使い方は、まず最初に manifest ファイル (複数 git リポジトリーの URL が書いてあるファイル) を初期化設定して、次に一括ダウンロード・同期コマンド sync を実行するんだった。例えば、Android のリポジトリー一式を取って来る場合は、次のやうにする。

$ repo init -u git://android.git.kernel.org/platform/manifest.git
$ repo sync

さてこの時、manifest ファイルに書かれていないリポジトリーは (当然) 取得されない。

実は、Android のデフォールト manifest は、gitweb で見えるうちのリポジトリーのうちかなりの数が manifest に含まれていない。大きな所では、最近、Kernel Project が manifest ファイルから削られた

local_manifest

local_manifest.xml というファイルを .repo 以下に書くと、manifest.xml に自分用の管理リポジトリーを追加できる。書式は manifest.xml と同じ。manifest.xml の書き方は過去記事を参照してもらうことにして:

さっき話題に上がった、kernel リポジトリーを local_manifest を使って取って来るやうにしてみやう。

.repo/local_manifest.xml を次のやうに書く:

<manifest>
  <project path="kernel" name="kernel/common"/>
</manifest>

manifest.xml の続きとして書くのがポイント。manifest.xml で設定した remote や default が引き継がれている。manifest.xml の remote や default の設定をコピーしてしまうと、エラーが起きてしまうので注意。

あとがき

local_manifest が使えると、サービス提供側が押し付けたリポジトリー以外のリポジトリーも取得できるやうになる。本家の manifest が変わっても影響を受けにくいという点で、manifest ファイルを自作するより効率的。repo を使う人は、覚えておいて損がない。

ref

No comments:

Post a Comment