長い答え:
ブランチ名(またはSHAなど)を指定することはできません。指定してrepo
も機能しません。理由は次のとおりです。
repo
リポジトリプロジェクトのコレクションを処理するスクリプトです(実際には独立したgitです)。プロジェクトリストは.repo
gitにあり、マニフェストファイルが含まれています。マニフェストファイルは、基本的にすべてのリポジトリgitとそれらのブランチのリストです。中のgitに-b
のみ関連します。repo
repo init
次に例を示し.repo/manifests/default.xml
ます。
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="git://address.com/" name="origin"
review="review.address.com"/>
<default remote="origin" revision="ics-something" sync-j="4"/>
<manifest-server url="http://manifests.address.com:8000"/>
<!-- sniff -->
<project name="platform/external/libxml2" path="external/libxml2"
revision="ics-common"/>
<project name="platform/external/zlib" path="external/zlib"
revision="ics-common"/>
<project name="platform/frameworks/base" path="frameworks/base"
revision="ics-something"/>
<project name="platform/packages/apps/Bluetooth" path="packages/apps/Bluetooth"
revision="ics-common"/>
<!-- sniff -->
</manifest>
したがって、特定のビルドのリポジトリのソースを取得する正しい方法は、マニフェストを取得することです。
つまり、マニフェストには、ブランチ名の代わりにSHA(またはタグが存在する場合は実質的に同じ)が含まれます。このようにして、リポジトリ内のすべてのgitプロジェクトは、マニフェストファイルで指定されているコミットを指し示します。
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="git://address.com/" name="origin"
review="review.address.com"/>
<default remote="origin" revision="ics-something" sync-j="4"/>
<manifest-server url="http://manifests.address.com:8000"/>
<!-- sniff -->
<project name="platform/external/libxml2" path="external/libxml2"
revision="refs/tags/android-4.0.4_r1.1"/>
<project name="platform/external/zlib" path="external/zlib"
revision="refs/tags/android-4.0.4_r1.1"/>
<project name="platform/frameworks/base" path="frameworks/base"
revision="ecb41a77411358d385e3fde5b4e98a5f3d9cfdd5"/>
<project name="platform/packages/apps/Bluetooth" path="packages/apps/Bluetooth"
revision="621bae79f1a250e443eb83d1f473c533bea493dc"/>
<!-- sniff -->
</manifest>
ご覧のとおり、これら2つのマニフェストの唯一の違いは、リポジトリgitのリビジョン値です。
短い答え:
manifest_static.xml
特定のビルドを取得する必要があります。
または、いくつかのプロジェクトgitが欠落している場合は、gitでlocal_manifest.xml
ファイルを作成し.repo
、そこに欠落しているgitを追加してrepo sync
から、リポジトリのルートから追加することができます。local_manifest.xml
使用法の詳細については、こちらをご覧ください。