まず、repo init は.repo
ディレクトリを作成し、git リポジトリhttps://android.googlesource.com/tools/repoをにクローン.repo/repo
し、オプションで指定された git リポジトリ-u
を のベア リポジトリにクローンします.repo/manifests.git
。その後、ディレクトリを作成し、からへ.repo/manifests
のシンボリック リンクを作成して、それを git リポジトリに変換します。次に、 で指定されたブランチをチェックアウトし、デフォルトで で指定されたファイル (オプション) を指すシンボリック リンクを作成します。 .repo/manifests/.git
.repo/manifests.git
-b
.repo/manifest.xml
-m
.repo/manifests
.repo/manifests/default.xml
おおよそ次のとおりです。
repo init -u $URL -b $BRANCH -m $MANIFEST
--------------------
mkdir .repo; CD.レポ
git クローン https://android.googlesource.com/tools/repo
git clone --bare $URL manifests.git
mkdir -p manifests/.git; CD マニフェスト/.git
for i in ../../manifests.git/*; do ln -s $ı .; 終わり
CD ..
git checkout $BRANCH -- .
CD ..
ln -s manifests/$MANIFEST manifest.xml
実際に何が起こっているかを追跡できますrepo --trace init ...
次に、repo syncはと.repo/projects
の各プロジェクトに対してgit リポジトリのクローンを作成し、対応するベア リポジトリへのシンボリック リンクを持つ作業ディレクトリを作成し、マニフェストで指定されたブランチをチェックアウトし、更新します。プロジェクトがすでに存在する場合は少し異なり、基本的に.manifest.xml
local_manifest.xml
.git
.repo/project.list
git pull --rebase