まず、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.xmllocal_manifest.xml.git.repo/project.listgit pull --rebase